我正在尝试在按钮单击时在表格中创建文本框。我在按钮单击中编写了javascript代码,它可以工作。我的问题是,在添加下一行文本框时,将清除在上一行文本框中输入的数据。给出了代码和屏幕截图。请帮助解决这个问题。
function addRow(tableID) {
var table = document.getElementById(tableID);
var count = table.rows.length - 1;
table.innerHTML += "<tr> <td>"+count+"</td> <td><input type='text' id='date" + count + "' size='20'></td> <td><input type='text' id='from" + count + "' size='20'></td> <td><input type='text' id='to" + count + "' size='20'></td> <td><input type='text' id='mode" + count + "' size='20'></td> </tr>";
}
点击添加按钮我丢失了与Sl.no1相对应的数据
答案 0 :(得分:4)
innerHTML
不适合您的方案。你真的应该使用Javascript提供的insertRow
和insertCell
方法。它更清洁,可维护,更容易阅读。 innerHTML
会覆盖元素的内容,这是你的问题。如果您使用了.innerHTML += "something"
,那么它可能会有效,但是每次调用addRow
时都无法构建表格 - 您只需通过HTML追加新行。
https://developer.mozilla.org/en-US/docs/DOM/table.insertRow
https://developer.mozilla.org/en-US/docs/DOM/tableRow.insertCell
这样,每次调用函数addRow
时都不必完全构造表。您可以使用insertRow
并添加一个带有文本框的新文件夹。您以前的行根本不会被覆盖,重新创建或搞砸(只要您正确行事)。虽然链接中有示例,但我会在几分钟内发布一个包含代码的示例。
更新:
要证明我的意思。它可能不是最干净的,我只是想快速写出来!