Ecco una funzione che t determina se uno qualsiasi degli elementi che corrispondono a un selettore di avere almeno un attributo:
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;
}
Usage:
if (hasOneOrMoreAttributes('.someClass')) {
// Do something
}
Se si vuole operare su elementi selezionati che hanno almeno un attributo, è ancora più facile - si crea un filtro personalizzato:
// 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;
};
che è possibile utilizzare in questo modo:
$(document).ready(function(){
$('li:hasAttributes').addClass('superImportant');
}
fonte
2010-02-10 21:00:26
Mi chiedo se jQuery offre qualcosa come '$ (" # a [*] ")'? –
@Naeem: Penso che potrebbe essere una funzionalità così bella, ma dal momento che ci sono modi semplici per risolvere questo problema, non penso che potrebbero aggiungerlo. – Tarik