122 votes

Vérifiez si la classe est déjà assignée avant d'ajouter

Dans jQuery, est-il recommandé de vérifier si une classe est déjà affectée à un élément avant d'ajouter cette classe? Cela aura-t-il même un effet?

Par exemple:

 <label class='foo'>bar</label>
 

En cas de doute si la classe baz a déjà été affectée à label , serait-ce la meilleure approche:

 var class = 'baz';
if (!$('label').hasClass(class)) {
  $('label').addClass(class);
}
 

ou cela suffirait-il:

 $('label').addClass('baz');
 

193voto

jmar777 Points 11681

Il suffit d'appeler addClass (). jQuery fera le chèque pour vous. Si vous vérifiez par vous-même, vous doublez le travail, car jQuery continuera à exécuter le contrôle pour vous.

48voto

Raynos Points 82706

Une simple vérification dans la console vous aurait indiqué qu'appeler plusieurs fois avec addClass avec la même classe est sans danger.

Plus précisément, vous pouvez trouver le chèque dans la source

 if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) {
  setClass += classNames[ c ] + " ";
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X