2014-02-10 44 views
0

有一张表格,用户可以在其中选择多行,在下面有两个按钮“向上”和“向下”。如果用户点击“向下”选中的行应该向下一行,“向上”则相同,选定的行应该增加一行,用户可以选择任何行。在html表格中向下移动Jquery

下面是我的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; 
}); 

但它不工作的罚款。当我选择最上面两行并单击时,它不起作用。 以同样的方式,如果我选择最后两行并点击,它不起作用。

您的建议和帮助,将不胜感激。

嗨达米安,你提供的解决方案在正常情况下工作正常。我有一个案例..我在下面解释, 有两个表格说左和右>用户可以从左表中选择任何行(id = metricTable),并可以移动到右表(id = pageDefTable),它附加在最后在表中,并在右表中显示为选定的行。

下面

是从左表中选择到右表中的任何行

 $("#center .move-row").live("click", function() { 
      var tr = $("#metricTable .selectRow").remove().clone(); 
      $("#pageDefTable tbody").append(tr); 
     return false; 
     }); 

右表是具有上移和下移的功能,只是由左到右表中移动任何一行之后该表的代码比单击moveup按钮,它不会移动行,当我第二次点击它消失。

请任何帮助和建议???

+0

向我们展示你的HTML代码 –

回答

0

我没有看到moveUp的问题。在下移你需要倒序项目:

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

jsfiddle

+0

我已经更新例如用停止条件不上已有的周期选定元素的顶部或底部 - > HTTP ://jsfiddle.net/7h5qy/4/ –

+0

是的,它正在工作。大!谢谢达米安! – user3194412

+0

嗨达米安,你提供的上述解决方案在正常情况下工作正常。我还有一个案例..我在下面解释,有两个面板左右两边都有桌子。用户可以从左侧选择任意一行,并可以移动到右侧面板 – user3194412