当tr不是元素时,可能重复:
Is there an “exists” function for jQuery
jQuery determining if element exists on page
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
答案 0 :(得分:34)
检查其length
属性:
if(tr.length) {
// exists
}
if(tr)
总是求值为true,因为jQuery对象或任何 JavaScript对象,总是很简单。
答案 1 :(得分:7)
我总是在我的JS文件开头添加这个小jQuery片段
jQuery.fn.exists = function(){return jQuery(this).length>0;}
这使用了许多人建议的相同方法,但它也允许您访问对象是否存在,如下所示:
if ( $('#toolbar').exists() ){
$('#toolbar').load(..., function(){...});
//etc...
}
答案 2 :(得分:3)
那是因为tr
是一个jQuery对象,这很简单(即使jQuery对象为空)。请改用if (tr.length)
,length
不为零时为真,零为零时为假。或者,if (tr[0])
。
答案 3 :(得分:1)
怎么样:
if (tr.size() == 0)
答案 4 :(得分:1)
试试这个
var tr = $('#parts-table .no-data').parent().length;