Ce qui est important à comprendre, c'est qu'il y a des vides attributs de classe ainsi que des éléments sans un attribut de classe, mais ils exigent différents tests pour sélectionner.
Il y a un certain nombre de tests que tous font des choses différentes. Voici notre code HTML pour nos tests:
<div class="">Empty Class Attribute </div>
<div class="column">Full Class Attribute </div>
<div>No Class Attribute </div>
Maintenant, permet d'exécuter nos tests (La première partie est simplement une chaîne de caractères qui nous permet de savoir ce qui a été appelé lors de l'alerte, sinon c'est vide de sens):
$(document).ready(function(e){
// Outputs "Empty Class Attribute Full Class Attribute"
alert( "div[class] : " + $('div[class]').text() );
// Outputs "Full Class Attribute"
alert( "div[class!=''] : " + $('div[class!=""]').text() );
// Outputs "Empty Class Attribute"
alert( "div[class=''] : " + $('div[class=""]').text() );
// Outputs "No class Attribute"
alert( "div:not(class) : " + $('div[class]').text() );
});
Vous pouvez afficher ce code dans votre navigateur en vous rendant ici: http://jsbin.com/ijupu
Maintenant, armés de cette connaissance, si vous souhaitez sélectionner tous les div
élément sur la page avec un attribut vide et aucun attribut, utilisez le sélecteur suivant:
$("div[class=''], div:not([class])");