Meilleures pratiques pour l’écriture de sélecteurs jQuery

J’écris actuellement des sélecteurs très explicites dans mon code jQuery. Par exemple, étant donné ce balisage

red green black

J’utilise ce sélecteur explicite

 var $select = $('.codeblue .codeyellow .codeorange .codewhite #codeChoice'); 

Serait-il préférable de faire cela à la place?

 var $codeBlue = $('.codeblue'); var $select = $codeBlue.find('#codeChoice'); 

Existe-t-il des succès en termes de performances pour ne pas utiliser de sélecteurs explicites?

Si vous utilisez des identifiants concrets, jQuery sera plus rapide car il utilise la méthode native document.getElementById (); Comme votre premier sélecteur comprend 4 classes (= détection lente) et 1 id (= détection plus rapide) et votre deuxième sélecteur 1 classe (= détection lente) et 1 id (= détection plus rapide), le second sera plus rapide.

Généralement, les sélecteurs seront plus rapides car moins de pièces sont incluses.

En réalité, les identifiants étant uniques, vous pouvez simplement les sélectionner dès le début.

 var $select = $('#codeChoice'); 

En ce qui concerne votre autre question, il n’ya pas de réponse facile. Plusieurs sélecteurs peuvent provoquer des ralentissements, mais vous devez vraiment essayer de savoir. De plus, cela dépend du navigateur. Votre meilleur pari pour vérifier est d’utiliser http://jsperf.com/

En outre, comme indiqué dans cette section , vous devez vous assurer de placer le sélecteur le moins spécifique à gauche, comme ceci:

 var $codeBlue = $('.codeblue #codeChoice'); 
 var $select = $("#codeChoice"); 

devrait être suffisant, car l’ id doit être unique

Le moyen le plus rapide de sélectionner un élément dans jQuery est son ID. Accéder à element par ID est bon pour la performance. Comme l’identifiant est unique sur la page.

Livre Javascript haute performance

 var $select = $('#codeChoice");