it-swarm-pt.tech

jQuery primeiro do tipo seletor?

Como eu selecionaria o primeiro elemento <p> no seguinte <div> com jQuery?

<div>
    <h1>heading</h1>
    <p>How do I select this element with jQuery?</p>
    <p>Another paragraph</p>
</div>
26
Web_Designer

Supondo que você já tenha uma referência à div:

$(yourDiv).find("p").eq(0);

Se a primeira variável p sempre será um filho direto de div, você pode usar children em vez de find.

Algumas alternativas incluem:

$(yourDiv).find("p:eq(0)"); //Slower than the `.eq` method
$(yourDiv).find("p:first"); 
$(yourDiv).find("p").first() //Just an alias for `.eq(0)`

Observe que o método eq sempre será o modo mais rápido de fazer isso. Aqui estão os resultados de um comparação rápida do método eq, :eq selector e :first selector (eu não me incomodei com o método first pois é apenas um alias de eq(0)):

enter image description here

55
James Allardice
$('div p:first')

a resposta foi curta demais para ser publicada sem essa sentença inútil.

Editar Esta é definitivamente uma opção lenta. Depois de olhar para o teste de velocidade de Jame, parece que os seletores do jQuery funcionam melhor quando eles se desligam dos seletores css.

6
rkw

$ ("div p"). primeiro ();

ou $ ('div p: first');

Referência: http://api.jquery.com/first/

Tenha em mente que first () corresponde apenas a um único elemento, o seletor first-child pode corresponder a mais de um: um para cada pai. 

2
Colin

Você quase sabe a resposta (do título do seu post). Existe um seletor no jQuery chamado :first-of-type. Use-o para encontrar e adicionar classe à primeira tag p automaticamente, assim:

$("div p:first-of-type").addClass('someClass');
1
Devner
$('div p').first()

Deveria trabalhar. Eu acho que.

0
bdares