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

を作成し<tr></tr>、html コンテンツをそのコンテンツに設定します。$row

コードをわかりやすくするために、の名前をに変更します$row$cells、それは個人的な好みです。

#btnAddStoriesまた、要素をクリックすると問題が発生する可能性があるため、ゴースト クリックを防ぐために を変更して先頭に を.click()追加.on('click')します。.off('click')(イベントが最初のクリックで 1 回、2 回目のクリックで 2 回発生することがあります。イベントが割り当てられる前に呼び出すと.off()、イベント ハンドラーが複数回適用されなくなります [これは通常、イベント ハンドラーが関数内で割り当てられている場合])

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