javascript - 使用 Javascript 插入新行 (rowspan)

标签 javascript html row html-table

我有如下的 Javascript:

function addRow(table1) {

            var table = document.getElementById(table1);

            var rowCount = table.rows.length;
            var row = table.insertRow(rowCount);

            var colCount = table.rows[0].cells.length;

            for(var i=0; i<colCount; i++) {

                var newcell = row.insertCell(i);

                newcell.innerHTML = table.rows[0].cells[i].innerHTML;
                //alert(newcell.childNodes);
                switch(newcell.childNodes[0].type) {
                    case "text":
                            newcell.childNodes[0].value = "";
                            break;
                }
            }
        }

HTML 如下所示:

<input type="button" value="Insert row" onclick="addRow('table1')" />
<table id="table1" border=1>
    <tr>
        <td rowspan=2><input type="text" name="txt1"></td>
        <td><input type="text" name="txt2"></td>
    </tr>
    <tr>
        <td><input type="text" name="txt3"></td>
    </tr>
</table>

我有一行 rowspan=2,还有两行没有 rowspan。如何编写以下行,以便在用户单击“插入行”按钮后,三个文本框将添加到新行中?

newcell.innerHTML = table.rows[0].cells.innerHTML;

最佳答案

请注意,在您的代码中:

> newcell.innerHTML = table.rows[0].cells.innerHTML;

我想你的意思是:

newcell.innerHTML = table.rows[0].cells[i].innerHTML;

但是无论如何,您是否考虑过使用克隆的行?例如类似于以下内容(未经测试):

function addRow(tableID) {
  var table = document.getElementById(tableID);
  var row = table.rows[0].cloneNode(true);
  var inputs = row.getElementsByTagName('input');
  var i = inputs.length;

  while (i--) {

    if (inputs[i].type = 'text') {
      inputs[i].vaule = '';

      // Might want to change other properties too
    }
  }
  table.tBodies[0].appendChild(row);
}

关于javascript - 使用 Javascript 插入新行 (rowspan),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14431537/

相关文章:

javascript - 有没有办法用JavaScript实现 "Open in Safari"?

javascript - onexit - 请求一个 url

javascript - 如何从 randomuser API 获取用户的用户详细信息?

javascript - 拖放到 HTML 对象标签上

excel - VB 脚本 - 在安装了 Excel 2003 和 Excel 2007 时显式调用 Excel 2007

c - 行主矩阵乘法与列主矩阵乘法

javascript - 如何使用商店插件 annotatorjs 加载注释?

javascript - 可以在 Textarea 中撤消重做吗?

javascript - 是否可以在单击 5 次后禁用按钮?

css - 获取一行下的标签使用表格的全宽