2010-12-13 12 views
37

La mia struttura HTML è come questo:Come si sposta un elemento HTML in jQuery?

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

voglio spostare l'elemento id="2" di inserire prima id="1" quindi la sua sarà come questo:

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

Come faccio a fare qualcosa di simile a jQuery ?

+1

@rahul - sono * non valida in HTML4 *, essere chiari su che dati i cambiamenti negli ultimi tempi;) –

+2

@rahul: ID è solo solo per esempio :), il vero sceneggiatura ovviamente non quello. – GusDeCooL

risposta

66

È possibile utilizzare .insertBefore(), in questo modo:

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

Oppure, .prependTo(), in questo modo:

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

... o viceversa utilizzando #1 e .insertAfter() e .appendTo() ... o più altri modi in realtà, dipende solo da ciò che si sta effettivamente dopo, i 2 metodi sopra dovrebbero essere il più breve possibile, dato 2 ID.

Sono supponendo questo è solo un esempio, ricordarsi di utilizzare ID che non iniziano con un numero in una pagina HTML4 effettiva, non sono validi e causano diversi problemi.

+0

grazie per capire se ID solo per esempio, e anche il codice '$ (" # 2 "). InsertBefore (" # 1 ");' sta risolvendo il mio problema ... grazie mille :) – GusDeCooL

7

semplicemente:

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

perché il '$ ('# 2')' invece di solo ''# 2''? –

+1

@FranciscoCorralesMorales Perché, il metodo ['before'] (http://api.jquery.com/before/) prevede, come parametro, una stringa HTML o un elemento DOM o una matrice di elementi o un oggetto jQuery. "# 2" non è nessuno di quelli. – TheWanderingMind

Problemi correlati