2010-02-11 37 views
134

Tengo un cierto cuadro de texto y deseo agregar un div después de él. He intentado con la función .append(), pero eso solo agrega div en el elemento.jQuery: Agregar elemento después de otro elemento

Por ejemplo, tengo:

y quiero cambiar eso en:

<input type="text" id="bla" /><div id="space"></div> 

Respuesta

228

intente utilizar el método after():

$('#bla').after('<div id="space"></div>'); 

Documentation

+5

Los métodos .after() y .insertAfter() realizan la misma tarea. – Rifat

+7

Eso es correcto, pero depende de la forma en que prefiera codificarlo. Normalmente ya tenía seleccionada la entrada '#bla' y luego agregué el contenido extra después. Sin embargo, puramente mi preferencia, no estoy seguro de si alguno de los métodos tiene un beneficio de velocidad. – Rowan

6

En primer lugar, input elemento no debería tener una etiqueta de cierre (de http://www.w3.org/TR/html401/interact/forms.html#edef-INPUT: Fin tag: prohibido ).

En segundo lugar, necesita la función after(), no append().

+0

correcta, pero eso es lo que sucede cuando intento .Append la función(). – skerit

+2

Si es XHTML, entonces el elemento de entrada debe estar cerrado (pero no con una etiqueta final). – CiscoIPPhone

+2

En HTML4 '' no se debe cerrar. –

30

tratar

.insertAfter() 

aquí

$(content).insertAfter('#bla'); 
+12

¿No debería su código ser más como '$ ('

') .insertAfter ('# bla')' en lugar de '$ ('# bla'). InsertAfter (content);'? – Rowan

0

Resuelto jQuery: Añadir elemento tras otro elemento

<script> 
$("p").append("<strong>Hello</strong>"); 
</script> 

O

<script type="text/javascript"> 
jQuery(document).ready(function(){ 
jQuery (".sidebar_cart") .append("<a href='http://#'>Continue Shopping</a>"); 
}); 
</script> 
Cuestiones relacionadas