在JQuery中交换行

如果我有一个如下所示的表,并且有一个向上和向下移动行的箭头,我将如何在JQuery中交换行?

 Some label Some complex control   Some label Some complex control   Some label Some complex control  

 $("#Row1").after($("#Row2")); 

将工作

这是另一种解决方案。

要向下移动一行:

 jQuery("#rowid").next().after(jQuery("#rowid")); 

要向上移动一行:

 jQuery("#rowid").prev().before(jQuery("#rowid")); 

这是一个稍微扩展的例子,希望你会发现它很有用…… 🙂

 $('table').on('click', '.move-up', function () { var thisRow = $(this).closest('tr'); var prevRow = thisRow.prev(); if (prevRow.length) { prevRow.before(thisRow); } }); $('table').on('click', '.move-down', function () { var thisRow = $(this).closest('tr'); var nextRow = thisRow.next(); if (nextRow.length) { nextRow.after(thisRow); } }); 

这是一个拖放表行的插件

要将Row1向下移动一步,您需要执行以下操作:

 $me = $("#Row1"); $me.after($me.nextSibling()); 

这是交换行的代码。 让我们走#Row1和#Row3

 $('#Row1').replaceWith($('#Row3').after($('#Row1').clone(true))); 

使用克隆(true)以便也考虑事件。

如果要上下移动行,请使用此代码。 向上移动行

 var tableRow = $("#Row1"); tableRow.insertBefore(tableRow.prev()); 

要向下移动行

 var tableRow = $("#Row1"); tableRow.insertAfter(tableRow.next()); 

我会尝试:

 var tmp = $ ('#Row1') $ ('#Row1').remove $ ('#Row2').after ($ ('#Row1')) 

但我想最好交换行的内容而不是自己交换行,这样你就可以依赖编号了。 从而,

 var tmp = $ ('#Row1').html () $ ('#Row1').html ($ ('#Row2').html ()) $ ('#Row2').html (tmp) 

我在表中使用拖放插件(带有subcathegories),并且在不工作之后使用拖放插件。 插入后工作。 类似的话题

这是一个具有3个参数的通用函数:源行,目标行和指示行是向上还是向下移动的布尔值。

 var swapTR = function (sourceTR, targetTR, isBefore) { sourceTR.fadeOut(300, function () { sourceTR.remove(); if (isBefore) { targetTR.before(sourceTR); } else { targetTR.after(sourceTR); } sourceTR.fadeIn(300); initializeEventsOnTR(sourceTR); }); }; 

你可以这样使用它:

 swapTR(sourceTR, targetTR, true);