3 回答
TA贡献1830条经验 获得超9个赞
您可以在文本字符串中使用分配 ID。
以下是您可以做的其他一些事情来改进此代码:
将 getElementById 移到循环外
使用 js 方法而不是字符串连接
像这样的东西(未经测试):
// get the container
container = document.getElementById('container');
for (i = 0; i < newArray.length; i++)
{
// create a div
var div = document.createElement('div');
// add attributes
div.setAttribute("id", "box-" + i);
div.setAttribute("class", "box");
// create text node
var textnode = document.createTextNode("This is div #" + i);
// add text to div
div.appendChild(textnode);
// append to container
container.appendChild(div);
}
TA贡献1810条经验 获得超4个赞
您可以在 for 循环中在迭代时直接执行此操作:
for (i = 0; i < newArray.length; i++)
{
x += '<div id="box-' + i + '"> class="box">' + newArray[i] + '</div>';
document.getElementById('container').innerHTML = x;
}
TA贡献1793条经验 获得超6个赞
创建时给它id怎么样?也把class=box像这样的引号 -> class="box"。
并且在 for 循环之后只添加一次整个 div 构造。因为现在你基本上是多次覆盖整个事情。
var words = [40];
var count = 0;
var x = "";
function nextElems() {
var newArray = words.slice(count, count + 8);
for (i = 0; i < newArray.length; i++)
{
// Change class and add custom id
x += '<div class="box" id="box-'+i+'">' + newArray[i] + '</div>';
}
document.getElementById('container').innerHTML = x; // Add divs after for loop
x = "";
count += 8;
}
现在每个盒子都有一个唯一的 id,从 box-0, box-1, ... 到 box-n
添加回答
举报