我试图让某些td(不是全部)不同的tr的效果与直接在其上方或下方的地方交换位置。我只希望最后3 td不是整行。我似乎很难找到一些只能做我想要的东西,而不是整行。
您可以看到我在此处设置的示例:http://codepen.io/anon/pen/qwHbz
我知道你可以这样做:
$("#Row1").after($("#Row2"));
但是我不想要整行。因此,如果我在拥有它的第一行上单击.saTableDown,我希望Target,Level和指令与它下面的那些交换,依此类推。在jquery / javascript中有可能是这样吗?如果是这样,我似乎无法弄明白。谢谢你的阅读!
答案 0 :(得分:1)
这是你想要的吗?
http://codepen.io/anon/pen/rEJxH
我会找到你点击上/下的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)'));
}
});