2012-06-19 12 views
6

要素を親の内部に移動する簡単な方法はありますか?jQuery DOM要素を親の内側に移動する

このよう

...

から:

<div class="test">hello 1</div> 
<div class="test">hello 2</div> 
<div class="test">hello 3</div> 

へ:

<div class="test">hello 1</div> 
<div class="test">hello 3</div> 
<div class="test">hello 2</div> 

のdiv UPまたはDOWN一歩を移動したり、特定のでappendToにインデックスを使用してどちらかポジション。

+0

の特徴は何ですか2つの要素?移動する要素をどのように選択しますか。どこに移動する必要がありますか? –

+0

クリックハンドラで選択します。次に、クリックされた要素のインデックスを使用します。 – user1121487

+0

さて、クリックされた要素はどこに行きますか?リストの最後の要素の後に移動する必要がありますか?あなたはどのように新しいポジションを決定しますか? –

答えて

12

あなたは(ここではjQueryの関数として)このような.prev().next()を使用することができるはずです。

$.fn.moveUp = function() { 
    $.each(this, function() { 
     $(this).after($(this).prev()); 
    }); 
}; 
$.fn.moveDown = function() { 
    $.each(this, function() { 
     $(this).before($(this).next()); 
    }); 
}; 
$("div:eq(2)").moveUp(); //Would move hello 3 up 
$("div:eq(0)").moveDown(); //Would move hello 1 down 

JSFiddle Demo

+0

はうまく動作します、ありがとう! – user1121487

3

それを覚える

$("div:eq(2)").after($("div:eq(0)")); 

又は

$("div:eq(2)").before($("div:eq(1)")) 

を試し:当量()は、ゼロベースです。

+0

あなたは '$(" div:eq(2) "))。after($(" div:eq(3) "))'を実行しないか、 – h2ooooooo

+0

ありがとう!私の答えを更新しました... – 472084

+0

ありがとう、素晴らしい作品! – user1121487

2
var child = $('#parent div'); // keep reference for further use 
child.eq(2).insertBefore(child.eq(1)); 

DEMO

+0

もすごくうれしいです! – user1121487

関連する問題