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语句正在终止传递给 的函数each,而不是外部函数。您应该让each函数设置一个变量,然后通过返回 false 来中断。

它应该看起来像:

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

val将自动执行函数并使用返回值。

于 2012-08-09T12:51:55.200 回答