2010-05-05 12 views
9

Jak dołączyć element do określonego indeksu elementów podrzędnych za pomocą jQuery append np. jeśli mam:jQuery dołącz div do określonego

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

i chcę dołączyć kolejny przedmiot między drugim a trzecim elementem?

+5

Przypuszczalnie 'class = ".container" 'to literówka? Poprawne jest użycie '.' w nazwie klasy, ale nie jest to coś, co na ogół chcesz robić. – bobince

Odpowiedz

19

Istnieje kilka opcji:

$("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')); 

Te same opcje, ale wstawienie do tej samej pozycji, używając "przed":

$("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 dla metody 'eq()' zamiast standardowego nie CSS (a zatem mniej wydajnego) selektora ': eq'. Należy jednak uważać na ': nth-child'; w przeciwieństwie do 'eq()' i większości pozostałych elementów, jego indeksy są oparte na 1 (argh). – bobince

+0

Mężczyźni Zawsze o tym zapominam. Dzięki za heads up! – user875139

4

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

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

to nie zadziała, ponieważ [1] zwraca natywny obiekt DOM, który nie zna funkcji "append()" – jAndy

+2

Należy unikać pytań jQuery. –