次のことは可能ですか?
$("#textarea1").val = function() {
$.each(data, function(i, j) {
if ($.trim($("#text2").val()) == j.l) {
return j.v;
} else {}
});
};
ある入力タイプまたはdivの値を条件付きで設定できますか?
次のことは可能ですか?
$("#textarea1").val = function() {
$.each(data, function(i, j) {
if ($.trim($("#text2").val()) == j.l) {
return j.v;
} else {}
});
};
ある入力タイプまたはdivの値を条件付きで設定できますか?
最初に値を見つけてから、要素の値を変更する必要があります。
あなたはそれを非常に奇妙な方法でやっています。ループで何をしているのかよくわかりません。ただし、最初にこれを実行してから、要素の値を設定します。
簡単な例:
var name = "Sam!";
if ( name != "Sam!" ) {
$("#textarea1").val("Your not Sam!");
} else {
$("#textarea1").val("Hey Sam :)");
}
condition
評価が、の場合true
、値はに設定され"yes"
ます。それ以外の場合は、変更されません。
$("#textarea1").val(function(i, oldval) {
return condition ? "yes" : oldval;
});
現在のように関数の外部に設定するのではなく、単に関数の$("#textarea1").val(j.v)
内部を呼び出すのではなく、いくつかの有効な設計パターンの理由があると思います。each
(おそらく、入力の大規模なコレクションを設定するために条件付きで使用したいロジックを持つ多くの関数オブジェクトがありますか?)
そうは言っても、コードにはいくつかの変更が必要です。
val
関数を正しく使用してください(これはセッターであり、設定可能なプロパティではありません)。return
渡された関数を終了しています。関数に変数を設定してから、falseを返すことで中断するeach
必要があります。each
次のようになります。
$("#textarea1").val(function() {
var result;
$.each(data, function(i, j) {
...
result = j.v;
return false;
});
return result;
});
val
関数を自動的に実行し、戻り値を使用します。