jQuery使用类“计算项目”;勾选“;
我在为这件事挣扎。我有一个项目列表,在表单的某个部分,当某个项目经过验证时,它会将类“checked”添加到相应的列表项目中jQuery使用类“计算项目”;勾选“;,jquery,css,Jquery,Css,我在为这件事挣扎。我有一个项目列表,在表单的某个部分,当某个项目经过验证时,它会将类“checked”添加到相应的列表项目中 <ul> <li class="title">Checklist</li> <li class="checkType checked">Card Type</li> <li class="checkNumber checked">Card Number</li> <li class=
<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;}
这将为您提供所有选中了类“
”且没有类标题的元素:
$('li.checked').not('.title').length
但是-如果您只需要选中元素的计数:
$('.checked').length
应该足够了。这可以通过一个简单的选择器实现
$("li.checked:not(.title)").length
这里的优点是,除了代码更少之外,在搜索过程中还考虑了:not()
选择器,以减少结果集。这意味着jQuery实例化dom元素的时间更短。这意味着更快的执行时间,尤其是在较旧的浏览器上。有时候,当你看到这个问题时,你会想为什么没有10个答案。。。你再等一秒钟。。。繁荣他所需要的所有可能的副本都是$(“.checked”)。长度
那怎么不是副本呢?那不打折带“title”类的副本。请正确阅读问题。是的,因为他不会勾选标题元素,是吗?也许op应该澄清这一点,因为在小提琴上看第一个li
元素似乎被用作某种标题的位置是没有意义的。这样做比只在Ben的答案中使用选择器有好处吗?添加li
一开始会使速度更快,但不是事后过滤会减慢速度。肯定会对基准测试感兴趣。@ArcherBen
的答案要快得多,因为它使用的是原生javascript。@Archer-这对我没有任何好处。我只是简单地把它作为一个快速简单的答案扔了上去。事实上,我投了本的票,因为这是一个更好的答案。。。
$('.checked').not('.title').length == $("ul li").length -1
$('.checked').not('.title').length == $("ul li").length -1
$("li").each(function() {
if( !$(this).hasClass("title") && $(this).hasClass("checked") ) {
alert("hah");
}
});