2010-01-21 5 views
2

Quand je fais quelque chose comme:div addClass que sur un div

$('#container').addClass("contract"); 

Ajouter seule classe au premier div conteneur id

Quand je fais quelque chose comme:

$('.container').addClass("contract"); 

Il ajoute la classe à tous les divs avec le conteneur de classe

POURQUOI?

Répondre

2

Chaque ID d'élément doit être unique. Un identifiant indique un et un seul attribut. Jquery ou tout autre framework ne considérerait même pas que vous pourriez avoir plus d'un élément avec un identifiant particulier. Tous vos éléments doivent avoir un identifiant différent. Javascript et le DOM attendent ceci (document.getElementByID par exemple retournera juste un élément, et pourrait maintenant fonctionner du tout si l'ID est dupliqué). Tout attend cela.

1

Parce que l'attribut id doit être unique dans le document HTML. Il n'est donc pas nécessaire de rechercher d'autres eelements avec id="abc" lorsque vous en trouvez un premier.

1

L'attribut ID d'un élément doit l'identifier de manière unique. Un attribut de classe peut être appliqué à plus d'un élément. Comme ID est unique, jQuery ne l'appliquera qu'au premier élément correspondant.