innerhtml无法在Javascript中工作

时间:2013-01-26 19:31:57

标签: javascript

我想使用Javascript将值插入表中。它添加了行和所需的单元格,以及我想要添加的元素,但是我要通过.innerHTML插入值的单元格仍为空。

这是我的代码。

        var table = document.getElementById(tableID);

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

        var cell1 = row.insertCell(0);
        var element1 = document.createElement("input");
        element1.type = "checkbox";
        element1.name="chkbox[]";
        cell1.appendChild(element1);

        var cell2 = row.insertCell(1);
        cell2.innerHTML = rowCount + 1;

        var cell3 = row.insertCell(2);
        var element2 = document.createElement("input");
        element2.type = "text";
        element2.name = "txtbox[]";
        cell3.appendChild(element2);

cell2仍然是空的......它出了什么问题?

2 个答案:

答案 0 :(得分:2)

无。它工作正常:

http://jsfiddle.net/jmorgan123/vB8PN/

我在Windows 7上的Chrome和FF中进行过测试,两者都有效。

  • 您确定要预先设置tableID吗?
  • 如果设置了cell1cell3,表格中是否存在少于3列的预先存在的行?这可能会导致奇怪的行为。
  • 我能想到的唯一另一种可能性 - 它不太可能 - 是可能cell2已在某处定义。 不应该有所作为(变量应该重新分配)但我不知道你正在使用什么浏览器,所以也许还有一个错误它。它可能会令人窒息,即使它不应该。

答案 1 :(得分:1)

这确实是一个奇怪的问题。正如大多数答案已经陈述的那样;它在众所周知的现代浏览器中运行良好。

既然你已经说过你正在使用Firefox和Chrome,它也应该在你的浏览器中运行良好(你是否更新到最新版和最好版本,或者你可能正在使用测试版?

我唯一能找到的是Quirksmode.org上的参考资料: http://www.quirksmode.org/dom/w3c_html.html

它声明IE5-9中几乎支持innerHTML。但这是我在那里找到的最有趣的部分:

  

在IE和Konqueror中innerHTML在更新表时无法正常工作。通过使用纯DOM方法来解决这个问题。请参阅innerHTML发明人的行为this explanation

这也可能与您的问题有关,因为您尝试使用innerHTML来操作表格。也许你应该查看他们所链接的解释,看看它是否适用于你的情况。