判断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是不是没有找到任何元素的主要内容,如果未能解决你的问题,请参考以下文章