我有2个表,我想根据使用复选框选择的行,从一个表添加行到另一个表,它将行从一个表添加到另一个表,但它不是根据行添加,而是基于单元格,这是我正在使用的: 当单击按钮时,它会循环遍历所有检查的行,并删除第一个单元格,即复选框,并将一行中包含的其余单元格添加到下一个表格中,我假设它会将生成的单元格包装到行中,但是事实并非如此,因为当我选择多行时,它会直接附加到最后一行最后一行的末尾。
$("#btnAddStories").click(function () {
$checkedStories = $("#dnn_TopStories_grdTopStoriesSearch input[type=checkbox]:checked");
$.each($checkedStories, function (index, item) {
$row = $(this).closest("tr").clone().find("td:not('.firstCell')").remove();
$('#tblTopstories tbody').append($row);
});
});
答案 0 :(得分:1)
完全改变答案,因为我以前的答案实际上没有回答你的问题!
问题在于,当您设置$row
时,您只调用该行中的单元格,当您执行.find()
为了使其正常工作,您需要将附加内容更改为:
$('#tblTopstories tbody').append($('<tr/>', {html: $row});
它的作用是创建<tr></tr>
并将html内容设置为$row
的内容
为了明确您的代码,我将$row
的名称更改为$cells
,但这只是个人偏好。
此外,当您点击#btnAddStories
元素时会出现潜在问题,因此我会将.click()
更改为.on('click')
并在开头添加.off('click')
以防止出现点击次数。 (有时事件会在第一次点击时触发一次,在第二次点击时触发两次等,在分配事件之前调用.off()
会阻止事件处理程序被多次应用,[这通常是在事件处理程序被分配到内部时功能])
$("#btnAddStories").off('click').on('click', function(){
...
})