Sélectionnez les éléments en fonction de la classe et de type d'élément
Comment puis-je sélectionner tous les éléments à l'intérieur d'un document HTML avec une classe spécifique et spécifique du type d'élément?
Je suis en train de sélectionner tous les points de contrôle avec la classe title loggedin
partir d'un document HTML (et puis les ouvrir dans le navigateur). Ceux-ci sont dans parragraphs avec la classe title
.
Ils sont leafs dans la suite de DOM arbre:
+ body
+ div class='content'
+ div id='siteTable' class='sitetable linklisting'
+ div class='thing id-t3_xxxx xxx xxx link'
+ div class='entry unvoted'
+ p class='title'
+ a class='title loggedin '
Où x
indique à contenu variable.
(Je suis à la recherche pour ce faire en raw JavaScript, c'est à dire, pas en jQuery.)
quel est le type d'élément/tag avec classe
D'ancrage, c'est à dire,
Dans les navigateurs modernes:
title loggedin
?D'ancrage, c'est à dire,
a
.Dans les navigateurs modernes:
document.querySelectorAll('a.title.loggedin')
OriginalL'auteur Humphrey Bogart | 2010-05-10
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
Quelques explications:
document.getElementsByTagName
retourne un tableau d'éléments d'un type donné (dans ce casa
)aElems[i].className.split
)aElems[i].className.split
)Array.prototype.indexOf
ce qui n'est pas pris en charge dans tous les navigateurs...Bon argument. J'ai changé de sorte qu'il ne nécessite pas de cette méthode.
J'ai finalement allé pour une solution plus simple pour que posté. Cheers!
OriginalL'auteur Gumbo
Techniquement ce n'est pas une classe, c'est deux classes:
title
etloggedin
. Vous pouvez utiliserdocument.getElementsByClassName()
.Vous pouvez passer deux classes à cette méthode.
getElementsByClassName()
a compatibilité implications (en ce moment): quirksmode.org/dom/w3c_core.html#gettingelementsLa compatibilité des implications sont d'anciens problèmes et non plus par rapport par des normes d'aujourd'hui.
OriginalL'auteur cletus
Récupérer tous les éléments d'un certain type de balise à l'aide de
document.getElementsByTagName()
et de la marche par le biais de la liste de travail. Avec plusieurs classes, vous devez analyser laclassName
propriété (qui contiendra l'intégralité de la chaîne detitle loggedin
) manuellement.Je suppose que vous avez une bonne raison de le faire en JavaScript; il serait beaucoup plus pratique à l'aide d'un framework comme jQuery ou Prototype.
c'est une bonne attitude!
OriginalL'auteur Pekka 웃
Je sais que c'est une vieille question, mais si vous avez toujours voulu savoir comment jQuery sélectionne les éléments, vous pouvez voir la source de leurs autonome sélecteur moteur Sizzle.js qui, au fil des années, a été développé par beaucoup de gens intelligents qui ont passé beaucoup de temps sur les performances 🙂
OriginalL'auteur Terry