sélecteur jQuery pour trouver le premier enfant dans un ensemble d'éléments
J'ai ce code HTML:
<div id="tags">
<ul>
<li><input type="text" /><a href="#">First Link</a> <a href="#">Second Link</a></li>
<li><input type="text" /><a href="#">First Link</a> <a href="#">Second Link</a></li>
<li><input type="text" /><a href="#">First Link</a> <a href="#">Second Link</a></li>
<li><input type="text" /><a href="#">First Link</a> <a href="#">Second Link</a></li>
<li><input type="text" /><a href="#">First Link</a> <a href="#">Second Link</a></li>
</ul>
</div>
Ce sélecteur aurais-je utiliser pour capturer le premier point d'ancrage de chaque élément li, et qu'en second point d'ancrage de chaque li sans ajouter un supplément de papiers d'identité ou de classes?
Bien, j'ai essayé ceci:
$('#tags a:last-child')
Et j'ai été en mesure d'obtenir le deuxième point d'ancrage de chaque li, mais je ne comprends pas pourquoi cela fonctionne. Ne serait pas un élément nécessaire à l'intérieur de l'ancre pour sélectionner quelque chose mais il est capable de sélectionner le 2ème point d'ancrage de chaque li. Plus tard, je n'aimais pas la façon dont il a travaillé, aussi longtemps que cela a fonctionné donc je me dis que je ferais la même chose pour obtenir le premier élément qui serait:
$('#tags a:first-child')
Mais cela ne fonctionne pas pour obtenir le premier point d'ancrage de chaque li. Des idées?
EDIT:
Donc je suppose que j'étais en train de faire, mais il ne fonctionnait pas parce que j'avais une zone de texte d'entrée qui semble faire cela ne fonctionne pas. Pourquoi ne serait-il pas plus travailler une fois une zone de saisie est-il?
td
éléments dans le n-ième colonne dans une table particulière?"les réponses ci-dessous sont grands, mais votre
$("#tags a:first-child")
a fonctionné pour moi...OriginalL'auteur Joker | 2011-01-19
Vous devez vous connecter pour publier un commentaire.
": Le premier/dernier-enfant" sélecteur (et en fait tous les "enfants" sélecteurs) prendre en compte tous les enfants, même ceux qui ne sont pas à l'aide de la balise que vous essayez de filtre.
Donc
$('#tags a:last-child')
fonctionne parce que dans ce cas, le point d'ancrage est le dernier enfant.Cependant,
$('#tags a:first-child')
ne fonctionne pas parce que c'est le premier enfant.Vous pouvez soit utiliser
$('#tags a:not(:last-child)')
, mais ce sera tous d'ancrage, les balises qui ne sont pas d'enfant, donc si vous avez de trois, il va sélectionner les deux premiers, et si vous avez un autre élément après la dernière ancre, il permet de sélectionner tous les points d'ancrage.Ou vous pouvez utiliser
$('#tags a:nth-child(2)')
, mais bien sûr, ici, il s'appuie sur le fait que le premier point d'ancrage est un 2ème enfant, de sorte que si vous supprimez les éléments d'entrée, ou ajouter plus d'éléments avant de la première ancre alors il ne fonctionnera pas.(Que vous pouvez penser de l'enfant sélecteurs comme ayant une priorité plus élevée que les sélecteurs de balise. Donc, il filtre les enfants, indépendamment de l'étiquette ou de la classe, et puis il ressemble à ce que la marque que vous voulez. Qui est contre-intuitif et bizarre, je sais 🙂 )
OriginalL'auteur Ilia Draznin
$("#tags li a:first-child")
ou$("#tags li a:nth-child(0)")
$("#tags li a:last-child")
ou$("#tags li a:nth-child(1)")
la raison pour laquelle le
:*-child
sélectionnez les oeuvres, parce que c'est un filtrage sur lea
balises, les enfants de l'une des balises.a :first-child
=> filtres sur les enfants de laa
taga:first-child
=> filtres sur laa
étiquettes sélectionnésExemple ici: http://jsfiddle.net/7vupb/
Merci pour l'explication de l'espace avant les deux points.
OriginalL'auteur hunter
Vous pouvez aussi faire quelque chose comme:
OriginalL'auteur Jage
C'est ce que vous voulez:
Cela permet de sélectionner toutes les "une" des descendants des "#tags" des éléments qui sont le premier élément ancre enfant de leur parent. Suffit d'utiliser 2 au lieu de 1 pour la deuxième ancre.
OriginalL'auteur Jhacker