检查元素是不是存在[重复]

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;

【讨论】:

以上是关于检查元素是不是存在[重复]的主要内容,如果未能解决你的问题,请参考以下文章

检查元素上是不是存在事件[重复]

检查向量中是不是存在元素[重复]

检查html元素是不是存在的正确方法[重复]

检查Bash数组中是不是存在元素[重复]

检查是不是存在具有相同类的多个元素[重复]

Selenium Webdriver Python - 检查元素是不是可见/检测到/存在[重复]