文本框在此问题中引用<input type="text">
。
对于具有给定类的每个文本框,我想检查值是否等于''
,如果是,我想要设置值'0'
。我想在页面加载后立即这样做。
这是我现在最接近的:
$(document).ready(function() {
if ($('.myclass').val() == '') $('.myclass').val('0');
})
这里的问题是,只要其中一个为空,此代码就会为我的所有文本框(class="myclass"
)提供值'0'
。我知道这是我现在使用的代码所期望的行为,但我对jQuery很新,我还没有真正掌握选择器。我该如何解决这个问题?我是否需要创建一个单独的函数来检查一个元素,然后为每个应用于选择器的元素调用它?如果是这样,我该怎么做?
答案 0 :(得分:8)
在jQuery 1.4中,a function can be passed到 val()将在集合中的所有元素上执行:
$(document).ready(function() {
$('.myclass').val(function (index, value) {
// If the element has a value, return it, else return "0"
return value || "0";
});
});
对于早于jQuery 1.4的版本,您需要在集合上使用.each():
$(document).ready(function() {
$('.myclass').each(function() {
this.value = this.value || "0";
});
});
答案 1 :(得分:3)
这可能是最简单的答案:
$("input.myclass[value=]").val("0");
仅选择没有值的元素。这是有效的,因为value属性反映了用户放入的文本。
答案 2 :(得分:1)
尝试
$(document).ready(function() {
$('.myclass[type=checkbox]').each(function(){
if($(this).val()=='')
$(this).val('0');
});
})
答案 3 :(得分:0)
$(document).ready( function() {
$('input:checkbox').each( function() {
// check the val
if( $(this).val()=='')
// do something
});
});