Javascript jQuery size()并查找是否应用了类

Javascript jQuery size()并查找是否应用了类,javascript,jquery,size,Javascript,Jquery,Size,我在数ul的李数。我正在使用jQuery size()方法 以下是我的HTML示例: <ul id="show-items" class="ui-sortable"> <li id="todo-2"> <label class="editable done">fasdfasdf</label> </li> <li id="todo-3"> <label class

我在数ul的李数。我正在使用jQuery size()方法

以下是我的HTML示例:

<ul id="show-items" class="ui-sortable">
    <li id="todo-2">
        <label class="editable done">fasdfasdf</label>
    </li>
    <li id="todo-3">
        <label class="editable">fasdfasdf</label>
    </li>
    <li id="todo-4">
        <label class="editable">fasdfasdf</label>
    </li>
    <li id="todo-5">
        <label class="editable done">fasdfasdf</label>
    </li>
    <li id="todo-6">
        <label class="editable">fasdfasdf</label>
    </li>
</ul>
下面是完成课程的列表:

var n = $("#show-items li").find(".done").size();
          $(".numb").text("Clear " + n + " completed task.");
我怎样才能找到没有完成课程的列表?我尝试了
:未(完成)
,但它显示了除列表之外的所有内容

基本上,从上面的HTML我想得到:

你有5张名单。2个列表完成了课程,3个没有


非常感谢

你很接近。您可以这样使用选择器:

// <li> without .done class on <label>
$("#show-items li").find("label:not(.done)").size();

// <li> with .done class on <label>
$("#show-items li").find("label.done").size();
/
  • 在上没有.done类 $(“#show items li”).find(“标签:未(.done)”).size(); //
  • 上完课 $(“#show items li”).find(“label.done”).size();

  • 以下是。

    更简单、更快的方法:

    alert($("#show-items li label:not(.done)").size());
    alert($("#show-items li label.done").size());
    
    您不必在选择器之后使用
    find()


    Fiddle:

    您可能还希望使用length属性而不是size()。正如jQuery文档所说:

    .size()方法在功能上等同于.length属性;但是,.length>属性是首选的,因为它没有函数调用的开销


    叫我傻瓜吧,但如果你知道你的总数和完成的数字,算出没有完成的数字(假设是一个或另一个)。@gregp是的,但将来我只想打一次电话,没有完成课程的列表。既然它应该是一行代码,我宁愿跳过数学。这就是我最初问这个问题的原因。我的评论并不意味着任何负面的东西,只是观察而已。就周期而言,您始终需要获得总数(初始jQuery对象)。从这里开始,无论你是搜索“完成”还是“未完成”的类,只要一行简单的数学就可以得到相反的结果。非常感谢。我正在尝试:$(“#show items li”).find(“:not(.done)”).size();而且不起作用。干杯
    alert($("#show-items li label:not(.done)").size());
    alert($("#show-items li label.done").size());