使用Javascript创建表时的rowIndex

时间:2013-04-22 13:43:56

标签: javascript html dom appendchild

我有以下函数将行和单元格附加到空table

        function createTable(size) {
            var table = document.getElementById("gameTable");
            for (var i=0; i<size; i++) {
                var tr = document.createElement("tr");
                for (var j=0; j<size; j++) {
                    var td = document.createElement("td");
                    tr.appendChild(td);
                }
                table.appendChild(tr);
                tr.rowIndex = i;
            }

        }

到目前为止一切顺利。

我的问题是,稍后,当我试图到达表格内的特定单元格时:

var x = target.parentNode.rowIndex;
var y = target.cellIndex; 

table.rows[x].cells[y].innerHTML = 'blah'

target是点击的具体TD

rows[x]索引始终为-1。每当我尝试上面的这一行时,我都会收到一个错误:“无法读取未定义的属性'单元'”  我甚至尝试手动将每行的rowIndex设置为它应该是什么(在函数内部),但是无济于事。

cellIndex很好,但是rowIndex是-1以及每个新创建的表行。

我该怎么做才能纠正这个问题?

1 个答案:

答案 0 :(得分:0)

这可以通过将<tr>元素附加到<tbody>

来解决
        function createTable(size) {
            var table = document.getElementById("gameTable");
            var tb = document.createElement("tbody");
            for (var i=0; i<size; i++) {
                var tr = document.createElement("tr");
                for (var j=0; j<size; j++) {
                    var td = document.createElement("td");
                    tr.appendChild(td);
                }
                tb.appendChild(tr);
            }
            table.appendChild(tb);
        }