【问题标题】:Check if element exists [duplicate]检查元素是否存在[重复]
【发布时间】:2011-06-15 07:40:41
【问题描述】:

可能的重复:
Is there an “exists” function for jQuery
jQuery 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

【问题讨论】:

标签: javascript jquery


【解决方案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;
          

          【讨论】:

            猜你喜欢
            • 2014-02-17
            • 2011-06-03
            • 2011-11-14
            • 2010-12-03
            • 1970-01-01
            • 2012-12-31
            • 1970-01-01
            • 2015-10-06
            相关资源
            最近更新 更多