假设我有一个<ul>
:
<ul>
<li></li>
<li></li>
<li class="test"></li>
</ul>
如何判断.test
是否有jquery的下一个元素?像这样?:
if ($("li.test").next()) { …… }
奇怪的是,即使我这样写:
if ($("li.test").next()) {alert("true");}
它仍然警告“true”,但正如您所看到,它旁边没有元素?为什么会这样
或者我能做的是
for (i = 0; i < $("li").length; i++) {
if ($("li").eq(i).hasClass("test")) {
if (i == $("li").length - 1) {
alert("true");
}
}
}
目前这可以解决我的问题,但有没有一个简单的方法?
谢谢你
4条答案
按热度按时间uplii1fm1#
http://jsfiddle.net/Kfsku/
7tofc5zh2#
$("li.test").next().length
;Example
gywdnpxw3#
您需要检查长度属性。
请记住,jQuery通常会返回自身,以便您可以链接。获取该对象的
length
属性将给予以下信息bjp0bcyl4#
一个jQuery selection的值总是boolean
true
(和if
语句一样)。这是因为它不是原生的JavaScript类型--它是一个对象。您需要检查所选内容的
length
属性。如果它为空,这将是0
,并将评估为false
,因此if
将不会通过。如果它不为空,它将是一个正整数,因此将计算为true
,因此条件将通过。