假设我有一个<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");
}
}
}
目前这可以解决我的问题,但是有简单的方法吗?
谢谢
最佳答案
jQuery 选择将始终计算为 bool 值 true
(如在 if
语句中)。这是因为它不是原生 Javascript 类型——它是一个对象。
您需要检查length
选择的属性。如果为空,则为 0
并且计算结果为 false
,因此 if
将不会通过。如果它不为空,则它将是一个正整数,因此计算结果为 true
,因此条件将通过。
if ($("li.test").next().length) { …… }
关于jquery - jquery如何判断一个元素的上一个或下一个元素是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5685685/