如何在表格单元格中插入输入框?

5
抱歉问个新手问题:我想创建一个带有输入字段的表格,如果需要,用户可以添加新字段。但是我无法弄清楚如何在已经存在另一个输入字段的单元格内添加另一个输入字段。
我的代码是:
var par=obj.parentNode;
while(par.nodeName.toLowerCase()!='tr')
{ par=par.parentNode; }
// this gives me the index of the row.. works fine.

cell1=document.getElementById('avz_tabelle').rows[par.rowIndex].cells;
// this puts the content of the cells into the array "cell1"

var feld = cell1[1].createElement("input"); 
feld.setAttribute("name","avz_keywords" + avz_array + "[]"); 
feld.setAttribute("onblur","");
feld.setAttribute("type","text"); 
feld.setAttribute("size","30"); 
// Now I create a input element
// And now comes the problem:

cell1[1].appendChild(feld); // --> doesn't work

有人能给我提些建议吗? 我想尝试不使用表格的方式来工作,理论上这应该可以适用于我的方法。但那样并不能令我满意 :/


2
element.createElement() 是有效的吗?我认为 createElement() 只是 document 的一个方法。 - Michael Berkowski
1
你的HTML代码是什么?avz_tabelle的行甚至包含两个单元格吗?为什么需要获取obj的parentNode的行索引? - Bergi
1
你在哪里遇到了哪个错误?如果没有任何错误,请告诉我们哪些地方出现了意外的结果。如果你遇到了一个错误,请将其发布出来。 - Bergi
2个回答

8
如果你在调试控制台中查看,你应该会看到类似于以下内容:
TypeError: Object #<HTMLDivElement> has no method 'createElement'

不要使用 cell1[1] 创建元素,而是使用 document.createElement()

 var feld = document.createElement("input");

2

你应该使用document.createElement("input");而不是cell1[1].createElement("input");

一如既往地(并且在另一个答案中也已经说明了),JavaScript控制台应该是查找问题提示的第一步!

如果每个要添加值的表格单元格都有一个单独的ID,那么实际上会更容易,对吧?可以包含行索引和列索引之类的内容...然后你就可以直接选择它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接