2012-04-04 45 views
5

Làm cách nào để di chuyển div sau div tiếp theo. Ví dụ tôi có 3 div khác nhau ngồi ở đây.Làm cách nào để di chuyển div sau div kế tiếp

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

Tôi muốn di chuyển div đầu tiên sau div thứ hai. Nó có nghĩa là div2 sẽ là đầu tiên và div1 sẽ là thứ hai. Tôi có nhiều định dạng html giống nhau.

tôi muốn thực hiện điều gì đó như jquery

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

Hãy cho tôi biết nếu điều này không có ý nghĩa.

Trả lời

21

bạn có thể nhận được các yếu tố .next(), và đặt nó .after()

hoặc

bạn có thể .insertAfter() yếu tố .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

Tôi nghĩ rằng bạn có một chút ngược lại: http://jsfiddle.net/ambiguous/kFTc5/ –

+0

tôi đoán tôi đã có nó ngược. tôi đã suy nghĩ nếu 'insertAfter()'. cảm ơn! – Joseph

+1

Tôi phải kiểm tra để chắc chắn rằng tôi nhận được chúng ngay :) –

11

Sau đây là cách bạn cắt thao tác cắt dán với DOM theo cách jQuery.

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

Bạn không cần phải 'tách', chỉ' $ ('. Div1'). InsertAfter ('. Div2'); 'là đủ: http://jsfiddle.net/ambiguous/LFqG3/ –

+0

Tôi nghĩ rằng bạn câu trả lời là tốt nhất Mu – Dips

+0

Detach cũng sẽ sao chép dọc theo tất cả các trình xử lý sự kiện gắn liền với phần tử DOM đó, không chắc chắn nếu chỉ insertAfter sẽ làm, sửa tôi nếu tôi sai. –

Các vấn đề liên quan