我可以使用以下命令检查元素是否具有特定属性:

if ($('#A').attr('myattr') !== undefined) {
    // attribute exists
} else {
    // attribute does not exist
}

如何检查元素是否具有任何属性?

谢谢

最佳答案

这是一个确定与选择器匹配的元素是否具有至少一个属性的函数:

function hasOneOrMoreAttributes(selector) {
    var hasAttribute = false;
    $(selector).each(function(index, element) {
        if (element.attributes.length > 0) {
            hasAttribute = true;
            return false; // breaks out of the each once we find an attribute
        }
    });
    return hasAttribute;
}

用法:
if (hasOneOrMoreAttributes('.someClass')) {
    // Do something
}

如果要对具有至少一个属性的选定元素进行操作,则更加简单-创建自定义过滤器:
// Works on the latest versions of Firefox, IE, Safari, and Chrome
// But not IE 6 (for reasons I don't understand)
jQuery.expr[':'].hasAttributes = function(elem) {
    return elem.attributes.length;
};

您可以这样使用:
$(document).ready(function(){
    $('li:hasAttributes').addClass('superImportant');
}

07-23 00:31