Javascript 获得一定的td';让我们交换位置
我试图获得某些td(并非全部)不同tr的效果,以便与直接位于其上方或下方的tr交换位置。我只想要最后3个td,而不是整排。我似乎很难找到能满足我想要的3个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吗?我似乎不知道是不是这样。谢谢
$("#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只会移动)。非常感谢。好的,我已经编辑了我的代码笔和我的答案。我希望这就是你现在想要的!