/ / Acessando o segundo membro de uma classe no jQuery? - javascript, jquery

Acessando o segundo membro de uma classe no jQuery? - javascript, jquery

Eu tenho uma pilha de divs que pertencem a uma classe específica, digamos tabs. e a estrutura semântica se parece com isso:

<div class = "tabs" >_______</div>
<div class = "tabs" >_______</div>
<div class = "tabs" >_____</div>

É fácil acessar o primeiro e o último elemento da div, como

$(".tabs:first") or
$(".tabs:last")

mas chegar ao segundo (e supondo que existam várias outras divs no interior, então todas as divs, exceto a primeira ou a última), parecem gerar um erro de sintaxe para mim, como:

$(".tabs:second") or $(".tabs:third") não funcione de maneira esperada.

Alguém pode identificar o que está errado aqui?

Respostas:

3 para resposta № 1

Dê uma olhada no jQuery :first documentação do seletor: http://api.jquery.com/first-selector/

Você notará que esta é uma extensão jQuery e não faz parte da especificação CSS. Também que :first é equivalente a :eq(0), isso significa que se você deseja obter o segundo elemento, pode fazê-lo com :eq(1).

Se você não precisa de um filtro no seletor CSS, pode simplesmente obter o elemento com o método .eq como isso:

$(".tabs").eq(0) // get the first element
$(".tabs").eq(1) // get the second element
$(".tabs").eq(2) // get the third element
$(".tabs").eq(-2) // get the second to last element
$(".tabs").eq(-1) // get the last element

6 para resposta № 2

Tente usar o eq() seletor, observe que o índice é baseado em zero:

$(".tabs:eq(1)");

6 para resposta № 3

Existem duas maneiras de fazer isso, usando o .eq() método ou o :eq() seletor.

O método .eq ():

A forma como a documentação do jQuery recomenda que você faça isso é usando o .eq() método.

// eq() is zero-based, so this would get the second element
$(".tabs").eq(1)

Um recurso útil é que .eq() também pode receber um número negativo, o que faz com que a função comece do fim.

// This would take the second element from the end
$(".tabs").eq(-2);

O seletor: eq ()

jQuery também fornece um :eq() seletor, que basicamente funciona da mesma maneira que o .eq() método faz. Então, você também pode fazer isso:

$(".tabs:eq(1)")

Observe que, embora funcione, é preferível usar o .eq() método em vez do seletor. O método tem melhor desempenho em navegadores modernos e o :eq() O seletor não suporta números negativos, por isso é um pouco mais limitado.