2010-05-05 18 views
9

Come aggiungere un elemento a un indice specifico degli elementi figli utilizzando l'appendice jQuery ad es. se ho:jQuery append div a uno specifico

<div class=".container"> 
    <div class="item"><div> 
    <div class="item"><div> 
    <div class="item"><div> 
    <div class="item"><div> 
</div> 

e voglio aggiungere un altro elemento tra il secondo e il terzo elemento?

+5

Presumibilmente 'class = ".container" 'è un refuso? È valido avere '.' in un nome di classe, ma non qualcosa che generalmente vorresti fare. – bobince

risposta

19

Ci sono alcune opzioni:

$("div.container div.item").eq(2).after($('your html')); 

$("div.container div.item:nth-child(3)").after($('your html')); 

$($("div.container div.item")[2]).after($('your html')); 

Le stesse opzioni, ma l'inserimento nella stessa posizione utilizzando "prima":

$("div.container div.item").eq(3).before($('your html')); 

$("div.container div.item:nth-child(4)").before($('your html')); 

$($("div.container div.item")[3]).before($('your html')); 
+1

+1 per il metodo 'eq()' invece dello standard non-CSS (e quindi meno efficiente) ': eq'. Tuttavia, fai attenzione con ': nth-child'; a differenza di 'eq()' e la maggior parte del resto di tutto, i suoi indici sono basati su 1 (argh). – bobince

+0

Gli uomini lo dimentico sempre. Grazie per il testa a testa! – user875139

4

("div.container div.item:eq(1)").after("<element to insert>")

-1
$('.container').children()[1].append('whatever'); 
+1

non funzionerà poiché [1] restituisce l'oggetto DOM nativo che non conosce una funzione 'append()' – jAndy

+2

Dovrei evitare le domande su jQuery. –