2010-05-05 12 views
9

Wie füge ich ein Element einen bestimmten Index der Kinder Elemente mit jQuery Append z. wenn ich habe:jQuery Append Div an eine bestimmte

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

und ich möchte ein anderes Element zwischen dem zweiten und dritten Element anhängen?

+5

Vermutlich 'class = ".container" 'ist ein Tippfehler? Es ist zulässig, in einem Klassennamen "." Zu haben, aber nicht das, was Sie normalerweise tun möchten. – bobince

Antwort

19

Es gibt ein paar Optionen:

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

Die gleichen Optionen, aber in der gleichen Position eingefügt mit "vor":

$("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 für 'eq()' Methode anstelle des Nicht-CSS-Standards (und daher weniger effizient) ': eq' Selektor. Sei jedoch vorsichtig mit ': nth-child'; Anders als 'eq()' und der größte Teil von allem, sind seine Indizes 1-basiert (argh). – bobince

+0

Männer Ich vergesse das immer. Danke für die Köpfe hoch! – user875139

4

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

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

das wird nicht funktionieren, da [1] das native DOM-Objekt zurückgibt, das über eine Funktion 'append()' nicht weiß – jAndy

+2

Ich sollte jQuery-Fragen vermeiden. –