Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在html表Jquery中下移行_Javascript_Jquery - Fatal编程技术网

Javascript 在html表Jquery中下移行

Javascript 在html表Jquery中下移行,javascript,jquery,Javascript,Jquery,有一个表格,用户可以选择多行,下面有两个上下按钮。若用户单击“向下”,则所选行应向下移动一行,而“向上”则相同,所选行应向上移动一行,用户可以选择任何行 下面是我的jQuery代码 为了打倒 $(".moveDown").live("click", function(){ var row = $("#pageDefTable .selectRow"); row.each(function() { var $this=$(this); $this.

有一个表格,用户可以选择多行,下面有两个上下按钮。若用户单击“向下”,则所选行应向下移动一行,而“向上”则相同,所选行应向上移动一行,用户可以选择任何行

下面是我的jQuery代码

为了打倒

$(".moveDown").live("click", function(){
    var row = $("#pageDefTable .selectRow");

    row.each(function() {
        var $this=$(this);
        $this.insertAfter($this.next());
    });     

    return false;
});
还有

$(".moveUp").live("click", function() {
    var row = $("#pageDefTable .selectRow");

    row.each(function() {
        var $this=$(this);
        $this.insertBefore($this.prev());
    });

    return false;
});
但它并没有起到很好的作用。当我选择最上面的两行并单击“向下”时,它不起作用。 同样的,如果我选择最后两行,然后点击up,它就不起作用了

谢谢你的建议和帮助

您好,达米安,您提供的解决方案在正常情况下运行良好。我还有一个案子。。我在下面解释, 有两个表表示left和right>用户可以从left table id=metricTable中选择任意一行,并可以移动到right table id=pageDefTable,最后将其追加到table中,并在right table中显示为选中的行

下面是从左表到右表选择任意行的代码

        $("#center .move-row").live("click", function() {
            var tr = $("#metricTable .selectRow").remove().clone();
            $("#pageDefTable tbody").append(tr);
        return false;
        });
右表是具有上移和下移功能的表,在将任何行从左表移动到右表之后,单击“上移”按钮,它不会移动行,当我第二次单击时,它会消失


请问有什么帮助和建议吗

我看不出moveUp有什么问题。向下移动时,您需要颠倒项目的顺序:

$($('tr.selected').get().reverse()).each(function () {
    if ($(this).next()) {
        $(this).insertAfter($(this).next());   
    }
})

向我们展示你的html代码我已经用停止条件更新了示例,不循环已在顶部或底部的选定元素->Hi Damian,你提供的上述解决方案在正常条件下工作正常。我还有一个案子。。我在下面解释,有两个面板表示左侧和右侧,两个面板都有表格。用户可以选择左边的任意一行,并可以移动到右边的面板。您能提供一些JSFIDLE吗?我已经编辑了我的原始问题,包括我的问题这里是JSFIDLE,但我很惊讶,它在这里工作,但是相同的代码在应用程序中不起作用