可以做以下事情吗?
$("#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
语句正在终止传递给 的函数each
,而不是外部函数。您应该让each
函数设置一个变量,然后通过返回 false 来中断。它应该看起来像:
$("#textarea1").val(function() {
var result;
$.each(data, function(i, j) {
...
result = j.v;
return false;
});
return result;
});
val
将自动执行函数并使用返回值。