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");