Количество флажков внутри элемента - PullRequest
2 голосов
/ 31 января 2011

Я пытаюсь найти способ подсчитать все отмеченные флажки в родительском элементе, используя jQuery.Софар Я не нашел достойного (и быстрого) решения.

Чтобы проиллюстрировать ситуацию: у меня есть ul-list с одним флажком check-all и одним флажком для каждого дочернего элемента списка.,Когда нет проверенных элементов списка, я хочу, чтобы флажок check-all был снят.Поэтому я предполагаю, что мне нужно подсчитывать все проверенные элементы списка каждый раз, когда изменяется один из них.

[...]
<li><input type="checkbox" class="checkall" />
<ul>
<li><input type="checkbox" id="ch1" class="list" /></li>
<li><input type="checkbox" id="ch2" class="list" /></li>
<li><input type="checkbox" id="ch3" class="list" /></li>
</ul>
</li>
[...]

Как вы видите, я работаю с вложенным списком ul для записи.Софар У меня есть следующий код jQuery, который служит для выбора родительского элемента списка, поскольку мне нужно только подсчитать флажки в этой «группе».

// $(this).val() is neccesary for my code to know which checkbox has been affected
var parentnode = $('input#' + $(this).val()).parent().parent().parent();
alert(parentnode.children('input.list:checked').length);

Я знаю, что он выиграл 'я не могу использовать селектор дочерних элементов (это для цикла, верно?), но я не могу найти способ подсчитать длину отмеченных флажков из элемента 'parentnode'. Не могли бы вы мне помочь?

1 Ответ

4 голосов
/ 31 января 2011

Поскольку children () обрабатывает только прямые дочерние элементы вашего элемента, вы можете использовать find () , чтобы обработать всех потомков, соответствующих селектору:

alert(parentnode.find('input.list:checked').length);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...