gpt4 book ai didi

JavaScript insertAfter 和 insertBefore

转载 作者:行者123 更新时间:2023-12-02 19:05:18 24 4
gpt4 key购买 nike

我正在使用 JavaScript 函数 insertAfterinsertBefore,但是我正在尝试 insertAfterinsertBefore > 两个元素。

例如,考虑以下 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 类时,当前行会向下移动一行。

我想要做的是将行向上/向下移动 2 行...意思是像 row.prev().prev()row.next() 。 next() 但这似乎不起作用。

有没有简单的方法可以解决这个问题?

非常感谢任何帮助/建议。

最佳答案

向上

row.prev().prev().before(row)

往下走

row.next().next().after(row)

显然 tr 必须存在 prev/next 必须存在

注意,您将行缓存为第一个 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)

})

关于JavaScript insertAfter 和 insertBefore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14364433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com