jQuery计数类"已检查"的项目

ngp*_*und 5 css jquery

我正在努力解决这个问题.我有一个项目列表和一些表格,当某些东西经过验证时,它会将"已检查"类添加到相应的列表项中.

<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;}
Run Code Online (Sandbox Code Playgroud)

但我需要jQuery来检查每个项目是否具有类checkedEXCEPT title.

这可行吗?

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

感谢答案,我现在有以下内容

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

Ben*_*oux 10

这可以通过一个简单的选择器来实现

$("li.checked:not(.title)").length
Run Code Online (Sandbox Code Playgroud)

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


Rio*_*ams 8

这应该给你所有没有类标题<li>的类' checked' 的元素:

$('li.checked').not('.title').length
Run Code Online (Sandbox Code Playgroud)

但是 - 如果您只想要检查元素的计数:

$('.checked').length
Run Code Online (Sandbox Code Playgroud)

应该足够了.

  • @Archer`Ben`的答案要快得多,因为它使用的是[querySelectorAll](https://developer.mozilla.org/en/DOM/Element.querySelectorAll),这是本机的javascript. (3认同)