2012-04-04 32 views
5

Jak przenieść div po następnym div. Na przykład mam tutaj 3 różne divy.Jak przenieść div po następnym div

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

Chcę użyć pierwszego elementu div po drugim div. Oznacza to, że div2 będzie pierwsze, a div1 będzie drugie. Mam pęczek tego samego formatu html.

Chcę wykonać jquery coś

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

Daj mi znać, jeśli to nie ma sensu.

Odpowiedz

21

można uzyskać element .next(), i umieścić go .after()

lub

można .insertAfter() elementowi .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

Myślę, że masz to nieco wstecz: http://jsfiddle.net/ambiguous/kFTc5/ –

+0

Myślę, że miałem go od tyłu. Myślałem, czy 'insertAfter()'. dzięki! – Joseph

+1

Muszę je sprawdzić, aby upewnić się, że je również poprawię :) –

11

Oto jak to zrobić cięcie operacje wklejania z DOM w sposób jQuery.

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

Nie musisz 'odejmować', po prostu' $ ('. Div1'). InsertAfter ('. Div2'); 'jest wystarczający: http://jsfiddle.net/ambiguous/LFqG3/ –

+0

Myślę, że twój odpowiedź jest najlepsza Mu – Dips

+0

Detach będzie również kopiować wzdłuż wszystkich procedur obsługi zdarzeń dołączonych do tego elementu DOM, nie jestem pewien, czy po prostu wstawiłbym Po wykonaniu, popraw mnie, jeśli się mylę. –