5

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

<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 来检查每个项目是否有类checkedEXCEPT title

这是可行的吗?

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

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

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

4 回答 4

10

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

$("li.checked:not(.title)").length

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

于 2012-06-25T14:55:22.833 回答
8

这应该为您提供所有具有类“ ”但没有类标题 的<li>元素:checked

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

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

$('.checked').length

应该足够了。

于 2012-06-25T14:54:42.743 回答
1
$('.checked').not('.title').length == $("ul li").length -1
于 2012-06-25T14:55:24.797 回答
0
$("li").each(function() {
    if( !$(this).hasClass("title") && $(this).hasClass("checked") ) {
            alert("hah");
    }
 });
于 2012-06-25T14:55:59.430 回答