jQuery计数类“已检查”的项目

时间:2012-06-25 14:53:15

标签: jquery css

我正在努力解决这个问题。我有一个项目列表,并且在某些内容经过验证后,它会将“已检查”类添加到相应的列表项中。

<ul>
<li class="title">Checklist</li>
<li class="checkType checked">Card Type</li>
<li class="checkNumber checked">Card Number</li>
<li class="checkName checked">Name on Card</li>
<li class="checkMonth checked">Expiry Month</li>
<li class="checkYear checked">Expiry Year</li>
<li class="checkCode checked">Security Code</li>
</ul>

.title{font-size:23px; font-weight:bold;}
.checked{ color:#f00;}

但是我需要jQuery检查每个项目是否有checked个类title除外。

这可行吗?

演示: http://jsfiddle.net/bQtEQ/1/

感谢答案,我现在有以下

        var counting = $("li.checked:not(.title)").length;
    if (counting == 6){
        console.log(counting);
    }

4 个答案:

答案 0 :(得分:10)

这可以通过1个简单的选择器

来实现
$("li.checked:not(.title)").length

除了必须减少代码之外,这里的优点是在搜索期间考虑:not()选择器以减少结果集。这意味着jQuery实例化dom元素的时间更少。这意味着更快的执行时间,尤其是在旧浏览器上。

答案 1 :(得分:8)

这应该为您提供所有<li>个元素,其中“checked”类没有类标题:

$('li.checked').not('.title').length

但是 - 如果你只想要检查元素的数量:

$('.checked').length

应该足够了。

答案 2 :(得分:1)

$('.checked').not('.title').length == $("ul li").length -1

答案 3 :(得分:0)

$("li").each(function() {
    if( !$(this).hasClass("title") && $(this).hasClass("checked") ) {
            alert("hah");
    }
 });