$(t).html()
devoluciones
<td>test1</td><td>test2</td>
Quiero recuperar el segundo td
del $(t)
objeto. Busqué una solución pero nada me funcionó. ¿Alguna idea de cómo obtener el segundo elemento?
jquery
jquery-selectors
Voto a favor
fuente
fuente
$(t).children('td').eq(1)
y$(t).children()[1]
find()
método jQuery? Como$(t).find('td').eq(1)
para obtener el segundo<td>
, sit
era, por ejemplo, una tabla y necesitaba mirar hacia abajo más de 1 nodo..children('td').eq(1)
a trabajar por alguna razón, pero.find('td').eq(1)
funcionó bien.Aquí hay una solución que quizás sea más clara de leer en el código:
Para obtener el segundo hijo de una lista desordenada:
Y un ejemplo más elaborado: este código obtiene el texto del atributo 'title' del segundo elemento secundario de la UL identificado como 'my_list':
En este segundo ejemplo, puede deshacerse de la 'ul' al comienzo del selector, ya que es redundante, porque una ID debe ser exclusiva de una sola página. Está ahí solo para agregar claridad al ejemplo.
Nota sobre rendimiento y memoria , estos dos ejemplos son buenos resultados, porque no hacen que jquery guarde una lista de elementos ul que tuvieron que ser filtrados después.
fuente
ul
que no tengamos que buscarlo.Cómo es esto:
ACTUALIZACIÓN PRINCIPAL:
Además de lo hermosa que se ve la respuesta, también debe pensar en el rendimiento del código. Por lo tanto, también es relevante saber qué hay exactamente en la
$(t)
variable. ¿Es una matriz de<TD>
o es un<TR>
nodo con varios<TD>s
dentro? Para ilustrar mejor el punto, vea los puntajes de jsPerf en una<ul>
lista con 50<li>
hijos:http://jsperf.com/second-child-selector
El
$(t).first().next()
método es el más rápido aquí, con diferencia.Pero, por otro lado, si toma el
<tr>
nodo y encuentra a los<td>
niños y ejecuta la misma prueba, los resultados no serán los mismos.Espero eso ayude. :)
fuente
No lo vi mencionado aquí, pero también puede usar selectores de especificaciones CSS. Ver los documentos
fuente
Prueba esto:
o
fuente
Además de usar los métodos jQuery, puede usar la
cells
colección nativa que<tr>
le proporciona.Suponiendo que
t
es un elemento DOM, puede omitir la creación del objeto jQuery.fuente
Es sorprendente ver que nadie mencionó la forma nativa de JS de hacer esto ...
Sin jQuery:
Simplemente acceda a la
children
propiedad del elemento padre. Devolverá una colección HTMLC en vivo de elementos secundarios a los que se puede acceder mediante un índice. Si quieres tener el segundo hijo:En su caso, algo como esto podría funcionar: (ejemplo)
También puede usar una combinación de selectores CSS3 /
querySelector()
y utilizar:nth-of-type()
. Este método puede funcionar mejor en algunos casos, porque también puede especificar el tipo de elemento, en este casotd:nth-of-type(2)
(ejemplo)fuente
Utilizar el
.find()
método$(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
fuente
Puede usar dos métodos en jQuery como se indica a continuación:
Usando jQuery: nth-child Selector Ha puesto la posición de un elemento como argumento, que es 2, ya que desea seleccionar el segundo elemento li.
Usando jQuery: eq () Selector
Si desea obtener el elemento exacto, debe especificar el valor de índice del elemento. Un elemento de lista comienza con un índice 0. Para seleccionar el segundo elemento de li, debe usar 2 como argumento.
Ver Ejemplo: Obtener el segundo elemento secundario de la lista en jQuery
fuente