Javascript 获得一定的td';让我们交换位置

Javascript 获得一定的td';让我们交换位置,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我试图获得某些td(并非全部)不同tr的效果,以便与直接位于其上方或下方的tr交换位置。我只想要最后3个td,而不是整排。我似乎很难找到能满足我想要的3个td的东西,而不是整排 您可以看到我在这里设置的示例: 我知道你可以这样做: $("#Row1").after($("#Row2")); 但是我不想要整排。因此,如果我在第一行单击.saTableDown,我希望目标、级别和指令与下面的指令交换,依此类推。在jquery/javascript中可以使用类似的Ir吗?我似乎不知道是不是这样。谢谢

我试图获得某些td(并非全部)不同tr的效果,以便与直接位于其上方或下方的tr交换位置。我只想要最后3个td,而不是整排。我似乎很难找到能满足我想要的3个td的东西,而不是整排

您可以看到我在这里设置的示例:

我知道你可以这样做:

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

但是我不想要整排。因此,如果我在第一行单击.saTableDown,我希望目标、级别和指令与下面的指令交换,依此类推。在jquery/javascript中可以使用类似的Ir吗?我似乎不知道是不是这样。谢谢你的阅读

这就是你想要的吗

我会找到您单击上/下的
tr
的索引,如果它不是第一个/最后一个,则将其与上一个/下一个
tr
交换。然后把数字换回来。我已经给了数字td一类
.num
,给了目标td一类
.target
,我假设您可以访问标记来实现这一点

jQuery:

$('.saTableUp').click(function(){
    //find the index of the parent tr
    var parentTr = $(this).parent().parent();
    var index = parentTr.index();

    // if not the first element
    if (index > 1) {
      var parentSwap = parentTr.prev();
      //swap rows
      parentSwap.before(parentTr);
      // move one number up a row
      parentTr.children('.num').before(parentSwap.children('.num'));
      // move other number (now the second .num in the row) down a row
      parentSwap.children('.target').before(parentTr.children('.num:eq(1)'));
    }
});

$('.saTableDown').click(function(){
    //find the index of the parent tr
    var parentTr = $(this).parent().parent();
    var index = parentTr.index();

    // if not the last element
    if (index < 4) {
      var parentSwap = parentTr.next();
      //swap rows
      parentSwap.after(parentTr);
      // move one number down a row
      parentTr.children('.num').before(parentSwap.children('.num'));
      // move other number (now the second .num in the row) up a row
      parentSwap.children('.target').before(parentTr.children('.num:eq(1)'));
    }
});
$('.saTableUp')。单击(函数(){
//查找父tr的索引
var parentTr=$(this.parent().parent();
var index=parentr.index();
//如果不是第一个元素
如果(索引>1){
var parentSwap=parentTr.prev();
//交换行
parentSwap.before(parentTr);
//将一个数字上移一行
parentr.children('.num')。在(parentSwap.children('.num'))之前;
//将另一个数字(现在是行中的第二个.num)下移一行
parentSwap.children('.target')。在(parentr.children('.num:eq(1)'))之前;
}
});
$('.saTableDown')。单击(函数(){
//查找父tr的索引
var parentTr=$(this.parent().parent();
var index=parentr.index();
//如果不是最后一个元素
如果(指数<4){
var parentSwap=parentTr.next();
//交换行
parentSwap.after(parentTr);
//将一个数字向下移动一行
parentr.children('.num')。在(parentSwap.children('.num'))之前;
//将另一个数字(现在是行中的第二个.num)上移一行
parentSwap.children('.target')。在(parentr.children('.num:eq(1)'))之前;
}
});

在重读你的问题时,我认为我的答案并不完全符合你的要求。只是你想让数字(1.01、1.02、1.03、1.04)始终保持这种顺序吗?你是对的,这很好,只是我希望数字保持不变(所以最后3个td只会移动)。非常感谢。好的,我已经编辑了我的代码笔和我的答案。我希望这就是你现在想要的!