jQuery:检查下一个元素是不是存在

Posted

技术标签:

【中文标题】jQuery:检查下一个元素是不是存在【英文标题】:jQuery: Checking if next element existsjQuery:检查下一个元素是否存在 【发布时间】:2011-10-06 17:59:39 【问题描述】:

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

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

else 
    alert("Dont exists");

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

【问题讨论】:

【参考方案1】:

您是否尝试过查看.next('li').length

【讨论】:

没问题。很高兴我能帮上忙。 我还以为next().length推断它在寻找相同类型的元素,但似乎不是,您必须再次定义元素类型,即$("table").next("table").length以查看是否有表遵循当前表格?【参考方案2】:

使用jQuery .is(),使用.is()你甚至可以检查下一个元素有什么标签、类或ID?

if($("#people .making-of .mask ul li.current").next().is('li')) 
    alert("Exists");

else 
    alert("Dont exists");

【讨论】:

【参考方案3】:

最简单的方法就是:

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

由于 jQuery 函数总是返回一个 jQuery 对象,它永远不会等于null。但是像访问数组一样访问 jQuery 对象就像使用 DOM 对象数组一样,因此[0] 将提取第一个匹配的 DOM 元素或null。检查 .length() 与 0 是否有效。

【讨论】:

【参考方案4】:

在 jQuery 中使用length 方法:

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

【讨论】:

(您需要使用.length 属性。)【参考方案5】:
if($("#people .making-of .mask ul li.current").next("li").length > 0) 
    alert("Exists");

else 
    alert("Dont exists");

【讨论】:

【参考方案6】:

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

if($("#people .making-of .mask ul li.current").next("li").length > 0) 
    alert("Exists");

else 
    alert("Dont exists");

【讨论】:

【参考方案7】:

我觉得这样用like挺好的。

if ($(this).nextAll().length > 0) 警报(“存在”); 别的 alert("不存在");

【讨论】:

以上是关于jQuery:检查下一个元素是不是存在的主要内容,如果未能解决你的问题,请参考以下文章

在追加到 JQuery 之前检查 DOM 元素是不是自动存在

通过jQuery中的类检查DIV元素是不是存在[重复]

需要更改此 JQuery 代码以在处理之前检查元素是不是存在 [重复]

jquery怎么判断是不是有某个元素

检查元素上是不是存在事件[重复]

检查jquery的对象中是不是存在键