jQuery:在所有空文本框中放置一个默认值

jQuery:在所有空文本框中放置一个默认值,jquery,Jquery,文本框是指本问题中的 对于具有给定类的每个文本框,我想检查值是否等于',如果等于,我想使值'0'。我想这样做,一旦页面加载 这是我现在得到的最接近的结果: $(document).ready(function() { if ($('.myclass').val() == '') $('.myclass').val('0'); }) 这里的问题是,只要其中一个文本框为空,此代码就会给所有文本框(带有class=“myclass”)值'0'。考虑到我现在使用的代码,我知道这是预期的行为,但我对

文本框是指本问题中的

对于具有给定类的每个文本框,我想检查值是否等于
'
,如果等于,我想使值
'0'
。我想这样做,一旦页面加载

这是我现在得到的最接近的结果:

$(document).ready(function() {
  if ($('.myclass').val() == '') $('.myclass').val('0');
})
这里的问题是,只要其中一个文本框为空,此代码就会给所有文本框(带有
class=“myclass”
)值
'0'
。考虑到我现在使用的代码,我知道这是预期的行为,但我对jQuery非常陌生,我还没有真正掌握选择器的窍门。我该如何解决这个问题?我是否需要创建一个单独的函数来检查一个元素,然后为应用于选择器的每个元素调用该函数?如果是这样的话,我该怎么做呢?

试试看

$(document).ready(function() {
  $('.myclass[type=checkbox]').each(function(){
      if($(this).val()=='')
          $(this).val('0');
    });
})
在jQuery 1.4中,将对集合中的所有元素执行的to val():

$(document).ready(function() {
  $('.myclass').val(function (index, value) {
    // If the element has a value, return it, else return "0"
    return value || "0";
  });
});
$(document).ready(function() {
    $('.myclass').each(function() {
        this.value = this.value || "0";
    });
});

对于早于jQuery 1.4的版本,您需要在集合上使用:

$(document).ready(function() {
  $('.myclass').val(function (index, value) {
    // If the element has a value, return it, else return "0"
    return value || "0";
  });
});
$(document).ready(function() {
    $('.myclass').each(function() {
        this.value = this.value || "0";
    });
});

这可能是最简单的答案:

$("input.myclass[value=]").val("0");

仅选择没有值的元素。这是因为value属性反映了用户输入的文本。

textarea
?你在问题的不同点上说了不同的话……对不起,我是指文本框。更正了
?我不需要检查它是否是文本框。除了class=“myclass”之外,没有其他元素。我应该把我的问题说得更清楚。这只适用于选择中的第一个元素。您需要使用每一个。这只是输出“函数(索引,值){return value | | |“0”}”,就好像它是一个字符串…@user296430:您使用的是旧版本的jQuery吗?正如我在回答中所说,这适用于1.4及更高版本。对于较旧版本的jQuery,您必须使用[.each()]()来迭代集合中的元素。哦,对不起,我确实使用了1.3:)@user296430:不用担心,我用另一个示例更新了我的答案:-)好的,谢谢,我不知道| |-运算符也可以应用于字符串。那太好了。我承认这是最好的回答,这行不通。我猜你打错了:这个.val()应该是$(这个).val()+1,因为这个显而易见的解决方案我们其他人都错过了。