怎样使用jQuery判断元素是否存在

发表于:2014-11-14 04:04:56,已有2435次阅读

作者:Aaron Russell 

原文:http://aaronrussell.co.uk/legacy/check-if-an-element-exists-using-jquery/

在使用jQuery时(或其它Javascript库),你是否遇到过如何通过(selector)选择器来判断元素是否存在的情况?好吧,也许你没有,但我却经常遇到;我将在这说明这是如何实现的,因为这并不像它看起来的那么简单。

简单直白的将选择器包裹在if语句中,这样对吗?

if ($("#mydiv")){
  // do something here
}

好吧,这是错的--像这样并不能正常工作!当你使用一个选择器,那么jQuery总是会返回一个对象,因此if语句会一直返回true,永远也不会为false。访问页面中不存在的元素,jQuery会返回一个里面什么都没有的对象--空对象;解决方案就在其中。

对于一个jQuery选择器我们可以使用length属性,它返回对象的大小,这样我们就可以据此修改if语句:

if ($("#mydiv").length > 0){
  // do something here
}

现在我们的代码就可以正常运行了,因为jQuery会返回一个空对象,则length属性则会返回为0,因此if语句就会返回为false,哈哈,正解!

译者:

我们还可以使用其变种模式像这样:

if ($("#mydiv").length){
   // do something here 
}
这也是可以正常运行的!


评论

暂无评论

您还可输入120个字