克隆表行不在js中工作

时间:2016-04-18 06:14:41

标签: javascript json

我有一张带复选框的桌子。当我选中复选框并单击复制按钮时,所选行要克隆到包含所选行的新表。目前表中选定的行不是克隆。我想使用JS没有jquery。我在下面添加了jsfiddle。

function cloneTable() {
  var tabClone = document.getElementById('table');
  var clone = row.cloneNode(true);
  for (var i = 0; i < rowCount; i++) {
    var row = tabClone.rows[i];
    var chkbox = row.cells[0].childNodes[0];
    if (chkbox.checked) {
        table.appendChild(clone);
    }
  }
  createTable();
}

jsfiddle

1 个答案:

答案 0 :(得分:2)

您正在调用function createTable,从而导致从头开始创建表。您需要做的只是在表中附加行的克隆并将复选框更改为false以标记该过程已完成。

修改

以下function cloneTable以及cloneTable()您添加&#34;第二个表格的创建&#34;为你:

var tableCopy = document.createElement('table');
tableCopy.id = "tableCopy";
tableContainer.appendChild(tableCopy);

function cloneTable() {
  var tabClone = document.getElementById('table');
  var rowCount = tabClone.rows.length;
  for (var i = 0; i < rowCount; i++) {
    var row = tabClone.rows[i];
    var chkbox = row.cells[0].childNodes[0];
    if (chkbox.checked) {
        chkbox.checked = false;
        var clone = row.cloneNode(true);
        if(tableCopy.rows.length == 0){
            var cloneHeader = tabClone.rows[0].cloneNode(true);
            tableCopy.appendChild(cloneHeader)
        }
        clone.cells[1].innerHTML = tableCopy.rows.length - 1;
        tableCopy.appendChild(clone);
        console.log(table)
                console.log(tableCopy)

    }
  }
}