jQuery: подсчитать количество входов с определенным значением - PullRequest
7 голосов
/ 10 ноября 2009

Мне нужно посчитать количество вводимых текстов со значением 1.

Я попробовал следующее, но безуспешно.

$('.class[value="1"]').length
$('.class:contains("1")').length

Использование $('.class[value="1"]') технически работает, однако, если значения в текстовом вводе изменяются после загрузки, он все равно считается как значение по умолчанию.

Я сделал длинный выстрел, используя событие щелчка .live, чтобы получить текущее значение, но все равно не повезло.

Мне совсем не повезло, используя $('.class:contains("1")')

Это кажется очень простым, но до сих пор ускользнуло от меня.

Ответы [ 3 ]

18 голосов
/ 10 ноября 2009

Этот пример демонстрирует, что это работает:

<!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++;
  }
});
4 голосов
/ 10 ноября 2009

Вам нужно выполнить итерации с $ .each (), если вы хотите текущие значения val ():

k=0;
$('.class').each(function(i, e) {
  if ($(e).val() == "1") k++;
});
1 голос
/ 10 ноября 2009
$(':input.class').filter(function() {
    return $(this).val() == '1'
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...