Вот функция tha т определяет, будет ли какой-либо из элементов, соответствующих селектора имеют по крайней мере один атрибут:
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');
}
Интересно, предлагает ли jQuery нечто вроде '$ (" # a [*] ")'? –
@Naeem: Я думаю, что это может быть такая приятная функция, но поскольку есть простые способы решить эту проблему, я не думаю, что они могли бы ее добавить. – Tarik