0

I want to insert values into a table using Javascript. It adds row and the required cells, and also an element i want to add, but the cell into which I want to insert a value through .innerHTML remains empty.

Here is my code.

        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 remains empty...what's wrong with it?

4

2 回答 2

2

没有什么。它工作正常:

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

我在 Windows 7 上的 Chrome 和 FF 中对其进行了测试,并且都可以正常工作。

  • 你确定要tableID提前设置?
  • 如果cell1并且cell3正在设置,表中是否存在少于 3 列的预先存在的行?这可能会导致奇怪的行为。
  • 我能想到的唯一另一种可能性——而且不太可能——是可能cell2已经在某个地方定义了。这不应该有什么区别(变量应该被重新分配)但我不知道你使用的是什么浏览器,所以它可能有一个错误。它可能会窒息,即使它不应该。
于 2013-01-26T19:36:24.603 回答
1

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

既然您已经说过您使用的是 Firefox 和 Chrome,那么它在您的浏览器中也应该可以正常工作(您是否更新到最新和最好的版本,或者您可能使用的是 beta 版本?

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

它指出innerHTMLIE5-9 中“几乎”支持。但这是我在那里发现的最有趣的部分:

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

这也可能与您的问题有关,因为您正在尝试使用innerHTML. 也许您应该查看他们链接的解释,看看它是否适合您的情况。

于 2013-01-26T20:21:56.240 回答