我一直在Google上搜索一段时间,似乎无法找到我这个问题的答案。我对js也有点新鲜,所以可能有一种更简单的方法或者我想念的东西。这就是我正在做的事情:
我想创建9个div,然后将9个div分别放入原来的9个div中。我有以下功能:
function createDivs() {
for(i = 0; i < 9; ++i) {
var bigSquare = document.createElement("div");
document.body.appendChild(bigSquare);
bigSquare.className = "square";
for(i = 0; i < 9; ++i) {
var smallSquare = document.createElement("div");
smallSquare.className = "pixel";
bigSquare.appendChild(smallSquare);
}
}
}
我认为这将创建9个div的9个分组,这些分组在类名“square”下标记,每个分组中的div用类名“pixel”标记,但事实并非如此。只创建了一个“bigSquare”div(包含9个“像素”div)而不是我想要的9个。我觉得好像每个新的“bigSquare”div的创建只是用循环的每次迭代替换前一个,但我不确定。就是这样,我不知道如何解决它...任何帮助?我试图描述这个的方式可能很混乱:/
答案 0 :(得分:1)
问题是您为外循环和内循环重用了循环迭代变量i
。将其中一个更改为j
或其他内容,您的代码应该有效。
答案 1 :(得分:1)
您需要为每个循环声明和更改变量,否则初始变量i
只会在您进入内部循环时发生变化。做到这样的事情:
function createDivs() {
for (var i = 0; i < 9; i++) {
var bigSquare = document.createElement("div");
document.body.appendChild(bigSquare);
bigSquare.className = "square";
for (var k = 0; k < 9; k++) {
var smallSquare = document.createElement("div");
smallSquare.className = "pixel";
bigSquare.appendChild(smallSquare);
}
}
}
答案 2 :(得分:0)
糟糕。你正在重复使用&#34;我&#34;里面和&#34;我&#34;环。切换变量!
function createDivs() {
for(var i = 0; i < 9; ++i) {
var bigSquare = document.createElement("div");
document.body.appendChild(bigSquare);
bigSquare.className = "square";
for(var j = 0; j < 9; ++j) {
var smallSquare = document.createElement("div");
smallSquare.className = "pixel";
bigSquare.appendChild(smallSquare);
}
}
}
&#13;