关于javascript:检查元素是否存在

Check if element exists

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicates:
Is there an “exists” function for jQuery
jQuery determining if element exists on page

当tr不是元素时,if(tr)返回true,如何检查它是否是存在的元素?

1
2
3
4
5
6
var tr = $('#parts-table .no-data').parent();
$('.delete', row).bind('click', function (e) {
  that.delete(e.currentTarget);
});
console.log(tr);
if (tr) //returns true when it shouldn't


检查其length属性:

1
2
3
if(tr.length) {
    // exists
}

if(tr)的计算结果始终为true,因为jquery对象或任何与此相关的javascript对象始终是真实的。


我总是在JS文件的开头添加这个小jquery片段

1
jQuery.fn.exists = function(){return jQuery(this).length>0;}

这使用了许多人建议的相同方法,但它也允许您访问是否存在这样的对象:

1
2
3
4
if ( $('#toolbar').exists() ){
    $('#toolbar').load(..., function(){...});
    //etc...
}


这是因为tr是jquery对象,这是真实的(即使jquery对象是空的)。用if (tr.length)代替,当length不为零时为真,当为零时为假。或者,if (tr[0])


试试这个

1
var tr = $('#parts-table .no-data').parent().length;

怎么样:

1
if (tr.size() == 0)