我有两种类型的表,我想在这两种表之间交换行。一种是:
<table>
<tr class="aTable">
<td>
</table>
和另外一个:
<table class="bTable">
<tr>
<td>
</table>
这种不同形式的原因是我在左侧有多个实例,我需要从中选择一行与右侧的一行交换。aTable
bTable
aTable
所以我必须从左侧的多个表中选择 1 行,将其突出显示为红色,从右侧选择 1 行,bTable
将其突出显示为绿色,然后单击“交换”以调用swapFunction()
我每次使用以下代码突出显示特定行
$('.aTable').on('click', function(event) {
if($(this).hasClass("highlightred")){
$(this).toggleClass('highlightred');
}else{
$('.aTable').each(function(idx, elm) {
$('.aTable').removeClass('highlightred');
});
$(this).toggleClass('highlightred');
}
});
$('.bTable').on('click', 'tbody tr', function(event) {
$(this).toggleClass('highlightgreen')
.siblings().removeClass('highlightgreen');
});
以及以下要交换的功能:
function swapFunction() {
var sourceRow = $('.bTable tbody tr.highlightgreen').removeClass('highlightgreen').toggleClass('aTable').eq(0);
var targetRow = $('tbody tr.aTable.highlightred').removeClass('highlightred').removeClass('aTable').eq(0);
sourceRow.after(targetRow.clone());
targetRow.replaceWith(sourceRow);
};
一切正常,如果我进行一次交换,但如果我尝试交换这些行,targetRow
则无法突出显示因此选择的,并且sourceRow
似乎同时获得 和 的两个highlightred
类highlightgreen
。我打印targetRow
parent() 并且似乎null
在切换之后,而sourceRow
parent() 看起来很好......有人知道问题是什么吗?