Question

J'ai observé certaines préférences pour la syntaxe de sélection, telles que:

 $('#mydiv > a.selectMe').hide();
 $('#mydiv').children('a.selectMe').hide();

Pour moi, cela semble un peu déroutant car la documentation de jQuery est un peu ambiguë ici:

" parent > Child Returns: Tableau Correspond à tous les éléments enfants spécifiés par " child " d’éléments spécifiés par "parent". "

et

" enfants (expr) Retours: jQuery Obtenez un ensemble d'éléments contenant tous les enfants immédiats uniques de chacun des éléments correspondants. "

La question qui doit être clarifiée dans MON esprit est de savoir si la première forme renvoie TOUS les enfants / petits-enfants ou uniquement les enfants immédiats, comme indiqué dans la deuxième forme, est vraie. L'un d'eux est le "sélecteur". forme et l’autre sous " traverser " sur les pages de documentation de jQuery, qui pour moi sont des tâches fonctionnelles similaires mais pas exactement la même chose.

SO, voici les questions:
Quelle forme est plus rapide? Est-ce qu'ils sélectionnent VRAIMENT la même chose, ou le 'parent > enfant 'sélectionner petits-enfants ainsi que les enfants immédiats?

Était-ce utile?

La solution

$ ('# mydiv a.selectMe') - Trouve toutes les ancres de la classe 'selectMe' qui sont les descendantes de la balise avec l'ID "mydiv". Celles-ci pourraient être imbriquées profondément.

$ ('# mydiv > a.selectMe'): recherche les enfants immédiats.

Quant à savoir ce qui est plus rapide entre vos deux exemples d’obtenir des enfants immédiats ... j’ai fait quelques essais contre la montre.

J'avais une page avec 10 000 balises d'ancrage avec la classe 'selectMe', au sein d'une div avec l'ID 'mydiv'.

$("#mydiv").children("a.selectMe") - 485ms
$("#mydiv > a.selectMe") - 374ms

En gros, c’est une différence négligeable, bien que tout faire à l’aide de sélecteurs soit toujours plus rapide. Si vous avez 10k ancres sur une page, vous faites face à un problème totalement différent, cependant. : -)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top