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

时间:2011-10-03 01:22:03

标签: javascript jquery size

我正在尝试计算ul的li。我正在使用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>

我使用以下代码查找#show-items中的所有列表,但我只想指定已完成标签和类的列表以及尚未完成类的列表。

var n = $("#show-items li").size();
          $(".numb").text("There are " + n + " divs. Click to add more.");

这个节目是我完成课程的列表:

var n = $("#show-items li").find(".done").size();
          $(".numb").text("Clear " + n + " completed task.");

如何找到没有完成课程的列表?我尝试了:not(done),但除了列表之外,它还显示了我的所有其他内容。

所以基本上从上面的HTML我想得到这个:

您有5个列表。 2个列表已完成课程,3个没有。

非常感谢

3 个答案:

答案 0 :(得分:1)

你很亲密。您可以使用:not()选择器,如下所示:

// <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();

这是an example

答案 1 :(得分:0)

更简单,更快

alert($("#show-items li label:not(.done)").size());
alert($("#show-items li label.done").size());

您不必在选择器后使用find()

小提琴:http://jsfiddle.net/zsbT8/2/

答案 2 :(得分:0)

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

  

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

http://api.jquery.com/size/

http://api.jquery.com/length/