私はjavascript関数insertAfterとinsertBeforeで遊んでいますが、insertAfterとinsertBefore2要素を試しています。
たとえば、次のHTMLについて考えてみます。
<table>
<tbody>
<tr>
<td>
Item 1
</td>
<td>
<div class="moveUpDown">
<div class="up">
</div>
<div class="down">
</div>
<div>
</div>
</div>
</td>
</tr>
<tr>
<td colspan="2">
<table>
<tr>
<td>
1
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
Item 2
</td>
<td>
<div class="moveUpDown">
<div class="up">
</div>
<div class="down">
</div>
<div>
</div>
</div>
</td>
</tr>
<tr>
<td colspan="2">
<table>
<tr>
<td>
1
</td>
</tr>
</table>
</td>
</tr>
</table>
次に、このjavascriptコードスニペットがあります
var row = $(this).parents("tr:first");
if ($(this).is(".up")) {
row.insertBefore(row.prev());
} else {
row.insertAfter(row.next());
}
基本的に、Upクラスが呼び出されると、前の行が上に移動し、Downクラスが呼び出されると、現在の行が1行下に移動します。
私がやりたいのは、行を上下に2行移動することです...これは、row.prev()。prev()やrow.next()。next()のようなものを意味しますが、これは機能しないようです。
これを回避する簡単な方法はありますか?
ありがとう、助け/提案をいただければ幸いです。