检查元素是否存在

可能重复:
是否存在jQuery的“存在”function
jQuery确定页面上是否存在元素

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

 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属性:

 if(tr.length) { // exists } 

if(tr)总是求值为true,因为jQuery对象或任何 JavaScript对象总是很简单。

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

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

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

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

那是因为tr是一个jQuery对象,这很简单(即使jQuery对象为空)。 改为使用if (tr.length) ,当length不为零时为true,为零时为false。 或者, if (tr[0])

怎么样:

 if (tr.size() == 0) 

试试这个

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