2010-12-13 21 views
37

Mi estructura HTML es así:¿Cómo muevo un elemento HTML en jQuery?

<div id="parent"> 
    <div id="1">Some content</div> 
    <div id="2">Some content</div> 
</div> 

Quiero mover el elemento id="2" de someter a id="1" por lo que su va a ser así:

<div id="parent"> 
    <div id="2">Some content</div> 
    <div id="1">Some content</div> 
</div> 

¿Cómo se hace algo así en jQuery ?

+1

@rahul - son * no válido en HTML 4 *, tener claro que, dados los cambios en los últimos tiempos;) –

+2

@rahul: ID es única, por ejemplo :), el real guión, por supuesto, no eso. – GusDeCooL

Respuesta

66

Puede utilizar .insertBefore(), así:

$("#2").insertBefore("#1"); 

O .prependTo(), así:

$("#2").prependTo("#parent"); 

... o al revés usando #1 y .insertAfter() y .appendTo() o varios ... De otra manera, de hecho depende de lo que realmente busca, los 2 métodos anteriores deberían ser lo más cortos posible, dado 2 ID.

estoy asumiendo esto es sólo un ejemplo, recuerde utilizar los identificadores que no empiezan con un número en una página real HTML 4, son válidos y causan varios problemas.

+0

gracias por entender si ID solo por ejemplo, y también su código '$ (" # 2 "). InsertBefore (" # 1 ");' está despejando mi problema ... muchas gracias :) – GusDeCooL

7

Basta con hacer:

$('#1').before($('#2')); 
+1

por qué '$ ('# 2')' en lugar de solo ''# 2''? –

+1

@FranciscoCorralesMorales Porque, el método ['before'] (http://api.jquery.com/before/) espera, como parámetro, una cadena HTML o un elemento DOM o una matriz de elementos o un objeto jQuery. ''# 2'' no es ninguno de esos. – TheWanderingMind

Cuestiones relacionadas