jQuery:计算具有特定值的输入数量

8
我需要计算值为1的文本输入框数量。
我尝试了以下方法,但都没有成功。
$('.class[value="1"]').length
$('.class:contains("1")').length

使用$('.class[value="1"]')在技术上是可行的,但是,如果文本输入中的值在加载后更改,它仍然将其视为其默认加载值。

我尝试使用.live点击事件来获取当前值,但仍然没有成功。

我尝试使用$('.class:contains("1")'),但是完全没有成功。

这似乎非常简单,但迄今为止一直使我无法解决。

3个回答

19

这个例子演示了它可以工作:

<!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++;
  }
});

我以为JQuery可能有一个速记一行代码,但它确实有效。谢谢! - ticallian

6

如果你想获取当前的val()值,你需要使用$.each()进行迭代:

k=0;
$('.class').each(function(i, e) {
  if ($(e).val() == "1") k++;
});

3
$(':input.class').filter(function() {
    return $(this).val() == '1'
})

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接