Javascript insertAfter&;插入之前
我正在使用javascript函数insertAfter和insertBefore,但是我正在尝试insertAfter和insertBefore 2个元素Javascript insertAfter&;插入之前,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,我正在使用javascript函数insertAfter和insertBefore,但是我正在尝试insertAfter和insertBefore 2个元素 例如,考虑下面的HTML <table> <tbody> <tr> <td> Item 1 </td> <td>
例如,考虑下面的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>
基本上,当调用Up类时,上一行上移,而当调用Down类时,当前行下移一行
我想做的是,将行向上/向下移动2行。。。表示类似于row.prev().prev()或row.next().next()的内容,但这似乎不起作用
有没有简单的办法
谢谢,如果您有任何帮助/建议,我们将不胜感激。请继续
row.prev().prev().before(row)
下降
row.next().next().after(row)
显然,tr必须存在上一个/下一个必须存在
注意,您正在将行缓存为第一个tr元素,因此每次第一个tr元素更改时,行都会更改
倾听事件
$("table").on("click","tr > td > span.moveup", function() {
var row = $(this).parent().parent();
if (row.prev().prev().get(0)) row.prev().prev().before(row)
})
我把这段代码:$(document).on(“单击”,“tr>td div.up”,function(){var row=$(this.parent().parent();if(row.prev().prev().get(0))row.prev().prev().before(row)})。。。但是行没有移动?@Kelish您的div嵌套在另一行中!您需要再添加一个父项,它正在工作:@Kelish fiddle不见了,很抱歉,无论如何,您必须添加一个父项()才能在行中获得tr,这就是itThanks mikakun,现在很有意义!
$("table").on("click","tr > td > span.moveup", function() {
var row = $(this).parent().parent();
if (row.prev().prev().get(0)) row.prev().prev().before(row)
})