for循环追加html js_javascript – for循环中的appendChild只添加1个孩子

JavaScript中,我使用HTML表创建一个网格(在Photoshop中看到的网格类型).网格大小将是可变的,即,可由用户改变,因此必须计算每个网格方块的大小并除以可用于获得精确大小网格的像素数.

我已经完成了所有这些,但是我在添加必要的表元素以创建网格时遇到了问题.我的代码处于完全正常工作状态,除非我在for循环中使用appendChild()函数,它只会附加一个子节点,而它应该追加到几百个.

我的代码:

grid.show = function(event)

{

var e = event;

if(grid.show_grid == false)

{

grid.show_grid = true;

parent.document.getElementById("grid_table").style.display = "block";

// Get grid (table) and create some elements.

grid.get_grid = parent.document.getElementById("grid_table");

grid.tr = parent.document.createElement("tr");

grid.td = parent.document.createElement("td");

// Clear the grid of all squares so we don't have to worry about subtracting anything.

grid.get_grid.innerHTML = "";

// Calculate the number of horizontal and vertical squares.

var horizontal = Math.ceil(grid.total_width / grid.size);

var vertical = Math.ceil(grid.total_height / grid.size);

// This was a nested loop, removed for demonstration.

// Attempting to add 10 "

" to the table.

for(var j = 0; j < 10; j++)

{

grid.tr.appendChild(grid.td);

}

//console.log(grid.tr);

// Add the elements to the table.

grid.get_grid.appendChild(grid.tr);

}

else

{

grid.show_grid = false;

parent.document.getElementById("grid_table").style.display = "none";

}

}

这只返回一个包含单个表数据的表行,如下所示:

我已经看过this page和this page,他们听起来很有希望,但我无法弄清楚如何使这项工作.

编辑:代码现在工作,解决方案:

grid.show = function(event)

{

var e = event;

if(grid.show_grid == false)

{

grid.show_grid = true;

parent.document.getElementById("grid_table").style.display = "block";

grid.get_grid = parent.document.getElementById("grid_table");

grid.tr = null;

grid.td = null;

grid.get_grid.innerHTML = "";

var horizontal = Math.ceil(grid.total_width / grid.size);

var vertical = Math.ceil(grid.total_height / grid.size);

for(var i = 0; i < vertical; i++)

{

grid.tr = parent.document.createElement("tr");

for(var j = 0; j < horizontal; j++)

{

grid.td = parent.document.createElement("td");

grid.td.width = grid.size;

grid.td.height = grid.size;

grid.tr.appendChild(grid.td);

}

grid.get_grid.appendChild(grid.tr);

}

}

else

{

grid.show_grid = false;

parent.document.getElementById("grid_table").style.display = "none";

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值