0

次のことは可能ですか?

$("#textarea1").val = function() {
    $.each(data, function(i, j) {
        if ($.trim($("#text2").val()) == j.l) {
            return j.v;
        } else {}
    });
};

ある入力タイプまたはdivの値を条件付きで設定できますか?

4

3 に答える 3

1

最初に値を見つけてから、要素の値を変更する必要があります。

あなたはそれを非常に奇妙な方法でやっています。ループで何をしているのかよくわかりません。ただし、最初にこれを実行してから、要素の値を設定します。

簡単な例:

var name = "Sam!";

if ( name != "Sam!" ) {
  $("#textarea1").val("Your not Sam!");
} else {
  $("#textarea1").val("Hey Sam :)");
}
于 2012-08-09T12:38:18.993 に答える
0

condition評価が、の場合true、値はに設定され"yes"ます。それ以外の場合は、変更されません。

$("#textarea1").val(function(i, oldval) {
    return condition ? "yes" : oldval;
});
于 2012-08-09T12:39:51.973 に答える
0

現在のように関数の外部に設定するのではなく、単に関数の$("#textarea1").val(j.v)内部を呼び出すのではなく、いくつかの有効な設計パターンの理由があると思います。each(おそらく、入力の大規模なコレクションを設定するために条件付きで使用したいロジックを持つ多くの関数オブジェクトがありますか?)

そうは言っても、コードにはいくつかの変更が必要です。

  1. val関数を正しく使用してください(これはセッターであり、設定可能なプロパティではありません)。
  2. 現在、ステートメントは、外部関数ではなく、にreturn渡された関数を終了しています。関数に変数を設定してから、falseを返すことで中断するeach必要があります。each

次のようになります。

$("#textarea1").val(function() {
    var result;
    $.each(data, function(i, j) {
        ...
        result = j.v;
        return false;
    });
    return result;
});

val関数を自動的に実行し、戻り値を使用します。

于 2012-08-09T12:51:55.200 に答える