我需要计算值为1的文本输入数量。
我尝试过以下但没有运气。
$('.class[value="1"]').length
$('.class:contains("1")').length
然而,使用$('.class[value="1"]')
在技术上有效,如果文本输入中的值在加载后更改,它仍将其计为默认加载值。
我通过使用.live
点击事件来获取当前值,但仍然没有运气。
我使用$('.class:contains("1")')
看起来很简单,但到目前为止还没有找到我。
答案 0 :(得分:17)
此示例演示了这种方法:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$("#btn").click(function() {
alert($(":input[value='1']").length);
});
});
</script>
</head>
<body>
<input type="text">
<input type="text">
<input type="text">
<input type="button" id="btn" value="How many?">
</body>
</html>
或者你可以循环:
var matches = 0;
$(":input.class").each(function(i, val) {
if ($(this).val() == '1') {
matches++;
}
});
答案 1 :(得分:4)
如果你想要当前的val()值,你需要使用$ .each()进行迭代:
k=0;
$('.class').each(function(i, e) {
if ($(e).val() == "1") k++;
});
答案 2 :(得分:1)
$(':input.class').filter(function() {
return $(this).val() == '1'
})