检查元素是否存在
可能重复:
有没有jQuery的“存在”功能
jQuery确定页面上是否存在元素
if(tr)
在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)
总是评估为真,因为一个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])
。