我有一个这样的简单列表:
<ul id="cyclelist">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
我正在使用jQuery循环遍历列表。第一个问题是查找列表是否包含多个元素。我期待这样的事情发挥作用:
var $list = $('#cyclelist');
if ($list.length > 1) {
...
}
但是长度总是返回1.有没有更好的方法来使用jQuery查找列表的长度?或者我错了吗?
答案 0 :(得分:13)
尝试$('#cyclelist li').length
问题是$('#cyclelist')只有一个元素 - 整个无序列表。如果您想知道无序列表中列表项的数量,可以添加其他选择器“li”。
答案 1 :(得分:2)
var $list = $('#cyclelist li');
alert($list.length);
简单地说:您获得了与该选择器匹配的UL数量。
答案 2 :(得分:2)
你的选择器正在选择id为“cyclelist”的dom元素,它是一个单独的元素(带有该id的ul)。你想要做的是选择附加到ul的li元素。要做到这一点,你可以做(如上所述)
$('#cyclelist li')
答案 3 :(得分:1)
$('#cyclelist')
对id =“cyclelist”的元素使用CSS选择器,因此返回一个元素/对象引用,这是正确的; - )
我猜你可能意味着什么
$('#cyclelist li')
返回指定元素中的列表项。
更多jQuery方式的迭代元素集合的方法是使用每个,c.f。 http://docs.jquery.com/Core/each