我的问题是,当您在控制台中运行代码时显示:对象没有方法'appendChild'
这是我的代码:
function createColumns() {
var nodesTr = document.getElementsByTagName( 'tr' );
for( var i in nodesTr ) {
if( i < 3 || i == 8 || i == 13 || i == 15 || i == 18 )
continue;
for( var j = 1; j <= 14; j++ ) {
var nodeHTML = document.createElement( 'td' );
nodeHTML.innerHTML = 1;
nodesTr[ i ].appendChild( nodeHTML );
} // end for
} // end for
} // end function createColumns
问题在于这一部分
nodesTr[ i ].appendChild( nodeHTML );
答案 0 :(得分:4)
这是因为您使用的是for-in
而不是for
声明
这将命中非节点的属性:
for( var i in nodesTr ) {
您可以使用console.log()
来记录您的值来验证这一点。
console.log(i, nodesTr[ i ]);
我相信它会触及.length
属性,也许会触及.item()
方法。
使用for
语句只会迭代数字索引,并保证顺序是您在循环中定义的顺序。
for (var i = 0; i < nodesTr.length; i++) {