如何使用jquery判断元素的上一个或下一个元素是否存在?
假设我有一个
- :
我如何判断.test
是否有jquery的下一个元素? 像这样?:
if ($("li.test").next()) { …… }
奇怪的是,即使我写的如上:
if ($("li.test").next()) {alert("true");}
它仍然警告“真实”,但如你所见,它旁边没有元素?为什么会发生这种情况?
或者我能做的是
for (i = 0; i < $("li").length; i++) { if ($("li").eq(i).hasClass("test")) { if (i == $("li").length - 1) { alert("true"); } } }
目前这可以解决我的问题,但有一个简单的方法吗?
谢谢
jQuery选择将始终评估为布尔值true
(如在if
语句中)。 这是因为它不是本机Javascript类型 – 它是一个对象。
您需要检查选择的length
属性。 如果它为空,则该0
并将计算为false
,因此if
将不会通过。 如果它不为空,则它将是一个正整数,因此将计算为true
,因此条件将通过。
if ($("li.test").next().length) { …… }
if ($("li.test").next().length > 0) { ... }
$("li.test").next().length
;
例
你需要检查长度属性。
if ($("li.test").next().length) { //has next } else { //last elem }
请记住,jQuery通常会返回自己,因此您可以链接。 获取该对象的length
属性将为您提供信息