2011-10-06 125 views
47

有没有办法检查下一个元素是否存在?检查我的代码:jQuery:检查下一个元素是否存在

if($("#people .making-of .mask ul li.current").next("li") != null) { 
    alert("Exists"); 
} 
else { 
    alert("Dont exists"); 
} 

我在做什么错?非常感谢!

回答

116

你试过看看.next('li').length

+0

是它!谢谢! –

+0

没问题。很高兴我能帮上忙。 – George

+0

对于我一直使用的一些愚蠢的原因.length() – TheHamstring

2
if($("#people .making-of .mask ul li.current").next("li").length > 0) { 
    alert("Exists"); 
} 
else { 
    alert("Dont exists"); 
} 
20

使用jQuery .is(),使用.is()你甚至可以查阅一下标签,类或ID下一个元素有哪些?

if($("#people .making-of .mask ul li.current").next().is('li')) { 
    alert("Exists"); 
} 
else { 
    alert("Dont exists"); 
} 
14

最短的方法就是:

if($(...).next('li')[0]) { 

因为jQuery函数总是返回一个jQuery对象,它永远不会等于null。但像访问数组那样访问jQuery对象就像使用DOM对象数组一样,因此[0]将拉出第一个匹配的DOM元素或null。对0作品也检查.length()

1

就像上面说的帖子,你需要检查项目的长度。 Jquery.next()总是会返回一个jQuery对象,但如果没有下一个项目,它将具有0

if($("#people .making-of .mask ul li.current").next("li").length > 0) { 
    alert("Exists"); 
} 
else { 
    alert("Dont exists"); 
} 
1

长度使用length方法jQuery中:

if($(...).next().length > 0) { 
    alert("Exists.") 
} else { 
    alert("Doesn't exist!") 
} 
+0

至少在3.1.0中不起作用。 – Agamemnus

+0

(你需要使用''.length''属性。) – Agamemnus