Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery使用类“计算项目”;勾选“;_Jquery_Css - Fatal编程技术网

jQuery使用类“计算项目”;勾选“;

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=

我在为这件事挣扎。我有一个项目列表,在表单的某个部分,当某个项目经过验证时,它会将类“checked”添加到相应的列表项目中

<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
    一开始会使速度更快,但不是事后过滤会减慢速度。肯定会对基准测试感兴趣。@Archer
    Ben
    的答案要快得多,因为它使用的是原生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");
        }
     });