我可以使用以下命令检查元素是否具有特定属性:
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');
}