协慌网

登录 贡献 社区

jQuery hasAttr 检查元素上是否有属性

如何检查 jQuery 中的元素上是否有属性?与hasClass类似,但具有attr吗?

例如,

if ($(this).hasAttr("name")) {
    // ...
}

答案

var attr = $(this).attr('name');

// For some browsers, `attr` is undefined; for others,
// `attr` is false.  Check for both.
if (typeof attr !== 'undefined' && attr !== false) {
    // ...
}

$(this).is("[name]")怎么样?

[attr] attr属性的元素的 CSS 选择器, .is()检查在其上调用的元素是否与给定的 CSS 选择器匹配。

如果您将经常检查属性的存在,我建议您创建一个hasAttr函数,以在您的问题中假设使用:

$.fn.hasAttr = function(name) {  
   return this.attr(name) !== undefined;
};

$(document).ready(function() {
    if($('.edit').hasAttr('id')) {
        alert('true');
    } else {
        alert('false');
    }
});

<div class="edit" id="div_1">Test field</div>