检查元素是不是存在[重复]
Posted
技术标签:
【中文标题】检查元素是不是存在[重复]【英文标题】:Check if element exists [duplicate]检查元素是否存在[重复] 【发布时间】:2011-06-15 07:40:41 【问题描述】:可能的重复:Is there an “exists” function for jQueryjQuery determining if element exists on page
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
【问题讨论】:
之所以计算为真,是因为无论是否找到元素,你都会得到一个jQuery对象,这总是被认为是真的。 在发布代码之前取消缩进会很难吗? 可能重复:***.com/questions/4257906/… 重复:***.com/questions/477667/… 我选择了 4257906,因为它看起来最接近。 【参考方案1】:检查其length
属性:
if(tr.length)
// exists
if(tr)
总是计算为真,因为 jQuery 对象或 任何 javascript 对象总是为真。
【讨论】:
【参考方案2】:我总是在我的 JS 文件的开头添加这个小 jQuery sn-p
jQuery.fn.exists = function()return jQuery(this).length>0;
这使用了这里许多人建议的相同方法,但它还允许您访问对象是否存在,如下所示:
if ( $('#toolbar').exists() )
$('#toolbar').load(..., function()...);
//etc...
【讨论】:
【参考方案3】:那是因为tr
是一个 jQuery 对象,它是真实的(即使 jQuery 对象是空的)。改用if (tr.length)
,当length
不为零时为真,为零时为假。或者,if (tr[0])
。
【讨论】:
【参考方案4】:怎么样:
if (tr.size() == 0)
【讨论】:
【参考方案5】:试试这个
var tr = $('#parts-table .no-data').parent().length;
【讨论】:
以上是关于检查元素是不是存在[重复]的主要内容,如果未能解决你的问题,请参考以下文章