首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript insertAfter和insertBefore

Javascript insertAfter和insertBefore
EN

Stack Overflow用户
提问于 2013-01-17 01:41:32
回答 1查看 3.2K关注 0票数 0

我尝试使用javascript函数insertAfter和insertBefore,但是我尝试使用insertAfter和insertBefore 2元素。

例如,考虑下面的HTML

代码语言:javascript
复制
<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代码片段

代码语言: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()之类的东西,但是这似乎不起作用。

有什么简单的方法可以解决这个问题吗?

谢谢,如果有任何帮助/建议,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-17 01:44:28

往上走

代码语言:javascript
复制
row.prev().prev().before(row)

往下走

代码语言:javascript
复制
row.next().next().after(row)

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

注意:您将缓存行作为第一个tr元素,因此每次更改第一个tr元素时,row都会发生变化

监听事件

代码语言:javascript
复制
$("table").on("click","tr > td > span.moveup", function() {
  var row = $(this).parent().parent();

 if (row.prev().prev().get(0)) row.prev().prev().before(row)

})
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14364433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档