2012-04-04 11 views
5

Come si sposta un div dopo il successivo div. Ad esempio, ho 3 div diversi seduti qui.Come faccio a spostare div dopo il successivo div

<div class="div1">Div1</div> 
<div class="div2">Div2</div> 
<div class="div3">Div3</div> 

Desidero spostare il primo div dopo il secondo div. Significa che div2 sarà il primo e div1 sarà il secondo. Ho un sacco dello stesso formato html.

voglio eseguire jquery qualcosa come

$(".div1").each(function() { 
    $(this).appendTo().$(this).after(); 
}); 

Fatemi sapere se questo non ha senso.

risposta

21

si può ottenere l'elemento .next(), e posizionarlo .after()

o

è possibile .insertAfter() l'elemento .next()

http://jsfiddle.net/kFTc5/1/

$(".div1").each(function() { 
    var item = $(this); 

    //either this: 
    item.next().after(item); 

    //or this: 
    item.insertAfter(item.next()); 


}); 
+0

Penso che tu abbia un po 'indietro: http://jsfiddle.net/ambiguous/kFTc5/ –

+0

credo di averlo fatto all'indietro. stavo pensando se 'insertAfter()'. Grazie! – Joseph

+1

Devo controllarli per essere sicuro di averli anche io :) –

11

Ecco come si fa a tagliare operazioni di copia con DOM in modo jQuery.

Var temp= $(“div1”).detach(); //Performs the cut operation 
temp.insertAfter(“div2”); //Does the paste 
+7

Non è necessario 'staccare ', solo' $ ('. Div1 '). InsertAfter ('. Div2 '); 'è sufficiente: http://jsfiddle.net/ambiguous/LFqG3/ –

+0

Penso che il tuo la risposta è la migliore Mu – Dips

+0

Detach copierà anche tutti i gestori di eventi collegati a quell'elemento DOM, non sono sicuro che se solo insertAfter lo farebbe, correggimi se sbaglio. –

Problemi correlati