$(t).html()
Retour
<td>test1</td><td>test2</td>
Je veux récupérer le second td
de l' $(t)
objet. J'ai cherché une solution mais rien n'a fonctionné pour moi. Une idée comment obtenir le deuxième élément?
jquery
jquery-selectors
Vote favorable
la source
la source
$(t).children('td').eq(1)
et$(t).children()[1]
find()
méthode jQuery? Comme$(t).find('td').eq(1)
pour obtenir le second<td>
, sit
était, disons, une table et que j'avais besoin de regarder plus d'un nœud?.children('td').eq(1)
au travail pour une raison quelconque, mais j'ai très bien.find('td').eq(1)
travaillé.Voici une solution qui est peut-être plus claire à lire dans le code:
Pour obtenir le 2ème enfant d'une liste non ordonnée:
Et un exemple plus élaboré: Ce code récupère le texte de l'attribut 'title' du 2ème élément enfant de l'UL identifié comme 'ma_liste':
Dans ce deuxième exemple, vous pouvez vous débarrasser du 'ul' au début du sélecteur, car il est redondant, car un identifiant doit être unique à une seule page. C'est là juste pour clarifier l'exemple.
Remarque sur les performances et la mémoire , ces deux exemples sont de bons résultats, car ils ne permettent pas à jquery d'enregistrer une liste d' éléments ul qui ont dû être filtrés par la suite.
la source
ul
pour ne pas avoir à la rechercher.Comment c'est:
MISE À JOUR MAJEURE:
Outre la beauté de la réponse, vous devez également réfléchir à la performance du code. Par conséquent, il est également utile de savoir ce qu'il y a exactement dans le
$(t)
variable. Est-ce un tableau de<TD>
ou est-ce un<TR>
nœud avec plusieurs à l'<TD>s
intérieur? Pour illustrer davantage ce point, consultez les scores jsPerf sur une<ul>
liste de 50<li>
enfants:http://jsperf.com/second-child-selector
le
$(t).first().next()
méthode est de loin la plus rapide.Mais, d'un autre côté, si vous prenez le
<tr>
nœud et trouvez les<td>
enfants et exécutez le même test, les résultats ne seront pas les mêmes.J'espère que ça aide. :)
la source
Je ne l'ai pas vu mentionné ici, mais vous pouvez également utiliser des sélecteurs de spécifications CSS. Voir la documentation
la source
Essaye ça:
ou
la source
En plus d'utiliser les méthodes jQuery, vous pouvez utiliser la
cells
collection native que le<tr>
.En supposant qu'il
t
s'agit d'un élément DOM, vous pouvez contourner la création d'objet jQuery.la source
Il est surprenant de voir que personne n'a mentionné la manière native JS de faire cela.
Sans jQuery:
Accédez simplement à la
children
propriété de l'élément parent. Il renverra une HTMLCollection en direct des éléments enfants auxquels un index peut accéder. Si vous voulez avoir le deuxième enfant:Dans votre cas, quelque chose comme ça pourrait fonctionner: (exemple)
Vous pouvez également utiliser une combinaison de sélecteurs CSS3 /
querySelector()
et utiliser:nth-of-type()
. Cette méthode peut fonctionner mieux dans certains cas, car vous pouvez également spécifier le type d'élément, dans ce castd:nth-of-type(2)
(exemple)la source
Utiliser la
.find()
méthode$(t).find("td:eq(1)");
td:eq(x) // x is index of child you want to retrieve. eq(1) means equal to 1. //1 denote second element
la source
Vous pouvez utiliser deux méthodes dans jQuery comme indiqué ci-dessous:
Utilisation de jQuery: nth-child Selector Vous avez mis la position d'un élément comme argument qui vaut 2 comme vous voulez sélectionner le deuxième élément li.
Utilisation de jQuery: eq () Selector
Si vous souhaitez obtenir l'élément exact, vous devez spécifier la valeur d'index de l'élément. Un élément de liste commence par un index 0. Pour sélectionner le 2ème élément de li, vous devez utiliser 2 comme argument.
Voir Exemple: Obtenir le deuxième élément enfant de la liste dans jQuery
la source