Par exemple, il y a 10 lis dans un UL, et il y a un style spécial sur le troisième Li (comme la couleur est rouge, et les autres sont noirs). Je veux définir la couleur de tous les autres lis - sans inclure le rouge rouge - en rouge. Pour le moment, vous devez obtenir tous les nœuds frère de Red Lis.
Les frères sont ceux qui sont les mêmes que vous, ni les précédents ni les suivants, et il peut y avoir (frère) plus âgé que vous ni plus jeune que vous. De même, les nœuds frère sont utilisés. Voici une façon régulière d'obtenir des nœuds de frère.
Le code est le suivant
Fonction Fracles (Elm) {var a = []; var p = elm.parentNode.children; pour (var i = 0, pl = p.length; i <pl; i ++) {if (p [i]! == Elm) a.push (p [i]);} return a;}Idée: obtenez d'abord tous les enfants du nœud parent de cet élément. Parce que tous les enfants incluent également cet élément lui-même, vous devez vous retirer du résultat.
Il existe une autre méthode qui semble étrange, qui est d'obtenir le code source des nœuds frère en jQuery:
Le code est le suivant
Fonction Sibling (elem) {var r = []; var n = elem.parentnode.firstchild; for (; n; n = n.nextsibling) {if (n.nodetype === 1 && n! == elem) {r.push (n);}} return r;}Idée: trouvez d'abord le premier nœud enfant du nœud parent de cet élément, puis boucle pour trouver le nœud frère suivant de ce nœud jusqu'à la fin de la recherche.
Je me demande pourquoi JQuery utilise cette méthode. Cette méthode est-elle plus efficace que la première méthode?
Après mon test préliminaire - plus de 1 500 LI, les deux méthodes ci-dessus n'ont presque aucune différence d'efficacité, et elles réussissent toutes les deux en quelques millisecondes. L'environnement de test est Chrome et Firefox.
Si vous avez besoin d'obtenir tous les nœuds frères, vous pouvez utiliser l'une des méthodes ci-dessus.
Bien sûr, je vérifierai les deux méthodes ci-dessus à l'avenir. S'il y a des différences, je les mettrai à jour.
Méthode de recherche de nœuds du parent, fils et frère de JQuery
jQuery.parent (expr) Trouver le nœud parent, vous pouvez passer dans Expr pour le filtrage, tel que $ ("span"). Parent () ou $ ("Span"). Parent (". Class")
jquery.parents (EXPR), similaire à jQuery.parents (EXPR), mais il recherche tous les éléments d'ancêtre, non limités aux éléments parents
jquery.children (expr). Renvoie tous les nœuds enfants. Cette méthode ne renverra que les nœuds enfants directs et ne renverra pas tous les nœuds enfants.
jQuery.Contents (), renvoie tous les contenus suivants, y compris les nœuds et le texte. La différence entre cette méthode et les enfants () est que, y compris le texte vide, sera également utilisé comme un
JQUERY Object Returns, Children () ne renvoiera que le nœud
jQuery.Prev (), Renvoie le nœud de frère précédent, pas tous les nœuds de frères
jQuery.Prevall (), renvoie tous les nœuds de frère précédents
jQuery.next (), renvoie le nœud de frères prochains, tous les nœuds de frères et sœurs
jQuery.Nextall (), renvoyez tous les nœuds de frères et sœurs suivants
jQuery.siblings (), renvoie le nœud de frère, quel que soit le devant et le dos
jQuery.find (expr), est complètement différent de jQuery.filter (expr). jQuery.Filter () est de filtrer une partie de la collection d'objets JQuery initiale, tandis que jQuery.find ()
Le résultat de retour n'aura pas de contenu dans la collection initiale, tel que $ ("p"), trouver ("span"), commencer à chercher <span> de l'élément <p>, ce qui équivaut à $ ("p span"))
L'article ci-dessus JS pour obtenir tous les nœuds des éléments des frère est tout le contenu que je partage avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.