0

我有 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);
            });
        });

在此处输入图像描述

4

1 回答 1

1

完全改变答案,因为我之前的答案实际上并没有回答你的问题!

问题是,当您设置时$row,您只是调用该行中的单元格,当您执行.find()

为了使其正常工作,您需要将附加更改为:

$('#tblTopstories tbody').append($('<tr/>', {html: $row});

它的作用是创建 a<tr></tr>并将 html 内容设置为$row

为了您的代码清晰起见,我会将名称更改为$row$cells但这只是个人喜好。

此外,单击元素时会出现潜在问题#btnAddStories,因此我会将其更改.click().on('click')并在开头添加一个.off('click')以防止重击。(有时事件会在您第一次点击时触发一次,在您的第二次点击时触发两次,等等,.off()在分配事件之前调用会阻止事件处理程序被多次应用,[这通常是在函数内部分配事件处理程序时])

$("#btnAddStories").off('click').on('click', function(){
  ...
})
于 2012-05-18T22:43:01.923 回答