2010-05-05 28 views
9

específico Cómo anexar un elemento a un índice específico de los elementos secundarios usando jQuery append, por ej. si tengo:jQuery anexar div a un

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

y deseo agregar otro artículo entre el segundo y el tercer artículo?

+5

Presumiblemente 'class = ".container" '¿es un error tipográfico? Es válido tener '.' en un nombre de clase, pero no es algo que generalmente quieras hacer. – bobince

Respuesta

19

Hay algunas opciones:

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

Las mismas opciones, pero insertando en la misma posición utilizando "antes":

$("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 para el método 'eq()' en lugar del selector no estándar de CSS (y por lo tanto menos eficiente) ': eq'. Sin embargo, tenga cuidado con ': nth-child'; a diferencia de 'eq()' y la mayoría del resto de todo, sus índices están basados ​​en 1 (argh). – bobince

+0

Hombres Siempre me olvido de esto. ¡Gracias por el aviso! – user875139

4

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

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

esto no funcionará ya que [1] devuelve el objeto DOM nativo que no conoce una función 'append()' – jAndy

+2

Debería evitar las preguntas de jQuery. –