判断jQuery是不是没有找到任何元素

Posted

技术标签:

【中文标题】判断jQuery是不是没有找到任何元素【英文标题】:Determining whether jQuery has not found any element判断jQuery是否没有找到任何元素 【发布时间】:2011-02-22 02:07:23 【问题描述】:

我正在使用 jQuery 的选择器,尤其是 id 选择器:

$("#elementId")...

我应该如何判断 jQuery 是否找到了该元素? 即使具有指定 id 的元素不存在,下一条语句给我:[object Object]

alert($("#idThatDoesnotexist"));

【问题讨论】:

【参考方案1】:

$('#idThatDoesnotexist').length 是您正在寻找的。 (如果什么也没找到,这将是=== 0。)所以你的条件语句应该是:

if($('#id').length)  /* 找到的代码 */  else  /* 找不到的代码 */ 

您会从该警报返回一个对象,因为 jQuery(几乎)在您使用它时总是返回“jQuery 对象”,它是 jQuery 发现的允许方法链接的元素的包装器。

【讨论】:

你不需要零,$('#id').length 就足够了(javascript 中的零 == false) @David 你不需要需要这一事实并不一定让它变得多余,乍一看,IMO 让它更清楚了。 @Abir:它只会让你更清楚,直到你习惯了没有它的语法,测试真实性而不是明确的 0。我建议简单地习惯没有 == 0 的语法,随处可见。 @ScottStafford,要获得更多许可,您还可以使用if (!!$('#id').length),它会进行布尔转换。 您还应该考虑保存几个字符的好处是否可以抵消不熟悉 Javascript 细微差别的人阅读代码时的潜在混淆。在我看来,就可维护性而言,这不是最佳实践。【参考方案2】:

Futuraprime 是正确的,但您可以通过执行以下操作来缩短语法:

if ($("#id").length) 
   //at least one element was found
 else 
   //no elements found

【讨论】:

【参考方案3】:
!$.isEmptyObject($.find('#id'))

如果元素存在则返回 true,否则返回 false。

【讨论】:

【参考方案4】:
$('#my_selector').length > 0 
$('#my_selector').get(0) !== undefined
$('#my_selector')[0] !== undefined

这是基本的,现在随心所欲。

【讨论】:

以上是关于判断jQuery是不是没有找到任何元素的主要内容,如果未能解决你的问题,请参考以下文章

jquery怎么判断页面中是不是存在某元素

jquery - 查找只有文本而没有任何其他 html 标记的元素

jquery怎么判断一个属性是不是存在

jquery判断是不是有某个属性

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

jquery判断一个元素是不是存在