$(t).html()
retorna
<td>test1</td><td>test2</td>
Eu quero recuperar o segundo td
do $(t)
objeto. Eu procurei uma solução, mas nada funcionou para mim. Alguma idéia de como obter o segundo elemento?
jquery
jquery-selectors
Voto a favor
fonte
fonte
$(t).children('td').eq(1)
e$(t).children()[1]
find()
método jQuery? Como$(t).find('td').eq(1)
para obter o segundo<td>
, set
havia, digamos, uma tabela e eu precisava procurar mais de um nó?.children('td').eq(1)
trabalhar por algum motivo, mas.find('td').eq(1)
funcionou muito bem.Aqui está uma solução que talvez seja mais clara de se ler no código:
Para obter o segundo filho de uma lista não ordenada:
E um exemplo mais elaborado: Esse código obtém o texto do atributo 'title' do segundo elemento filho do UL identificado como 'my_list':
Neste segundo exemplo, você pode se livrar do 'ul' no início do seletor, pois é redundante, porque um ID deve ser exclusivo para uma única página. Está lá apenas para adicionar clareza ao exemplo.
Nota sobre desempenho e memória , esses dois exemplos são de bom desempenho, porque não fazem o jquery salvar uma lista de elementos ul que precisaram ser filtrados posteriormente.
fonte
ul
para que não tenhamos que procurá-lo.Como é isso:
ATUALIZAÇÃO PRINCIPAL:
Além de parecer bonita a resposta, você também deve refletir sobre o desempenho do código. Portanto, também é importante saber o que exatamente está na
$(t)
variável. É uma matriz<TD>
ou é um<TR>
nó com várias<TD>s
dentro dela? Para ilustrar melhor o ponto, consulte as pontuações do jsPerf em uma<ul>
lista com 50<li>
filhos:http://jsperf.com/second-child-selector
O
$(t).first().next()
método é o mais rápido aqui, de longe.Mas, por outro lado, se você pegar o
<tr>
nó e encontrar os<td>
filhos e executar o mesmo teste, os resultados não serão os mesmos.Espero que ajude. :)
fonte
Não o vi mencionado aqui, mas você também pode usar seletores de especificações CSS. Veja os documentos
fonte
Tente o seguinte:
ou
fonte
Além de usar métodos jQuery, você pode usar a
cells
coleção nativa<tr>
fornecida.Supondo que
t
seja um elemento DOM, você pode ignorar a criação do objeto jQuery.fonte
É surpreendente ver que ninguém mencionou a maneira JS nativa de fazer isso.
Sem jQuery:
Basta acessar a
children
propriedade do elemento pai. Ele retornará uma HTMLCollection ao vivo de elementos filhos que pode ser acessada por um índice. Se você deseja obter o segundo filho:No seu caso, algo como isso poderia funcionar: (exemplo)
Você também pode usar uma combinação de seletores CSS3 /
querySelector()
e utilizar:nth-of-type()
. Este método pode funcionar melhor em alguns casos, porque você também pode especificar o tipo de elemento, neste casotd:nth-of-type(2)
(exemplo)fonte
Use
.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
fonte
Você pode usar dois métodos no jQuery, conforme indicado abaixo:
Usando o jQuery: n-filho Seletor Você colocou a posição de um elemento como argumento, que é 2, conforme você deseja selecionar o segundo elemento li.
Usando o seletor jQuery: eq ()
Se você deseja obter o elemento exato, precisa especificar o valor do índice do item. Um elemento da lista começa com um índice 0. Para selecionar o segundo elemento de li, você deve usar 2 como argumento.
Consulte o Exemplo: Obter o segundo elemento filho da lista no jQuery
fonte