我尝试在表格中生成一个文本字段:随着用户的输入,表格变得更大,这就是为什么我不能只在html文档中编写输入语法,因为单元格不是从头开始生成的。
function tableAdd() {
var table = document.getElementById("table");
var titel = document.getElementById("Titel").value;
var description = document.getElementById("Description").value;
var row = table.insertRow();
var projectCell=row.insertCell(0);
projectCell.innerHTML = titel;
// down here is the problem
var x =row.insertCell(1);
x.innerHTML = document.createElement("INPUT")
x.innerHTML.setAttribute("type", "text");
}
发布于 2018-09-15 23:53:52
您正试图将从调用document.createElement("input");
返回的HTMLInputElement
引用分配给由insertCell(1);
返回的HTMLTableRowElement
(在我的示例中为newRow
)引用的不存在的innerHTML
属性。
相反,您可以将任何文本值赋给HTMLInputElement
的value
属性(在我的示例中是input
变量),并将动态输入附加到新创建的单元格。
function tableAdd() {
var table = document.getElementById("table");
var titel = document.getElementById("Titel").value;
var description = document.getElementById("Description").value;
var row = table.insertRow();
var projectCell=row.insertCell(0);
projectCell.innerHTML = titel;
var newRow =row.insertCell(1);
var input = document.createElement("input");
input.type = "text";
input.value= description
newRow.appendChild(input);
}
tableAdd();
<body>
<input type="text" id="Titel" value="test"/>
<input type="text" id="Description" value="test"/>
<table id="table">
</table>
<button onclick="tableAdd()">add</button>
</body>
以下是参考文档:
https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement/insertCell https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement
发布于 2018-09-15 23:54:10
问题是x.innerHTML
是一个字符串,而不是一个html元素。您需要在html元素上设置属性,而不是字符串。你可以这样做:
var x =row.insertCell(1);
var y = document.createElement("INPUT");
y.setAttribute("type", "text");
x.appendChild(y);
https://stackoverflow.com/questions/52346184
复制相似问题