我正在尝试计算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个没有。
非常感谢
答案 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()
。
答案 2 :(得分:0)
您可能还想使用length属性而不是size()。正如jQuery文档所说:
.size()方法在功能上等同于.length属性;但是,.length&gt;属性是首选属性,因为它没有函数调用的开销。