如何在jQuery中检查空对象

我使用的是jQuery,我想检查页面中是否存在元素。 我写了下面的代码,但它不起作用:

if($("#btext" + i) != null) {
    //alert($("#btext" + i).text());
    $("#btext" + i).text("Branch " + i);
}

我如何检查元素的存在?


检查jQuery常见问题...

您可以使用选择器返回的jQuery集合的length属性:

if ( $('#myDiv').length ){}

(因为我没有足够的声望来投票回答...)

沃尔夫写道:

在undefined或null对象上调用length属性会导致IE和webkit浏览器失败!

相反,试试这个:

 // NOTE!! THE FOLLOWING IS WRONG; DO NOT USE!  -- EleotleCram
if($("#something") !== null){
  // do something
}

要么

 // NOTE!! THE FOLLOWING IS WRONG; DO NOT USE!  -- EleotleCram
if($("#something") === null){
  // don't do something
}

虽然在未定义或空对象上调用length属性确实会导致浏览器失败,但jQuery选择器($('...'))的结果永远不会为null或未定义。 因此,代码建议没有意义。 使用其他答案之一,他们更有意义。


(2012年更新)因为人们看代码,这个答案在列表中很高:在过去的几年中,我一直在使用这个小插件:

  jQuery.fn['any'] = function() {
     return (this.length > 0);
  };

我认为$('div')。any()的读取优于$('div')。length ,加上你不会从拼写错误中受到太多的影响: $('div')。ayn()会给出一个运行时错误, $('div')。lenght会默默地最可能永远是虚假的。

__
2012年11月编辑:

1)由于人们倾向于查看代码,而不是阅读关于代码的内容,所以我在Wolf的引用代码中添加了两条关于代码的说明。
2)我添加了用于这种情况的小插件的代码。


查找函数返回一个匹配元素的数组。 你可以检查长度是否为零。 请注意更改只查找一次元素,并根据需要重新使用结果。

var elem = $("#btext" + i);
if (elem.length != 0) {
   elem.text("Branch " + i);
}

另外,你是否尝试过使用文本函数 - 如果没有元素存在,它什么都不会做。

$("#btext" + i).text("Branch " + i);
链接地址: http://www.djcxy.com/p/83853.html

上一篇: How to check null objects in jQuery

下一篇: jQuery determining if element exists on page