有几种方法可以避免动态ID。您可以使用小部件类对所有小部件进行分组,并拥有另一个可以唯一标识小部件的类。像
<img class="widget widget-1" src="someUrl"/>
或别的东西,你也可以有
<img class="widget" src="someUrl"/>
,并使用第n个孩子CSS选择器访问它们,使用document.querySelector()
而且,总是建议避免document.write方法。相反,您可以使用document.createElement /使用字符串文字表示并在循环完成后追加连接的字符串。
var container = document.CreateElement("div");
for (var idx = 0; idx < 1024; idx++) {
var imageElement = document.createElement("img");
imageElement.classList.add("widget");
// In the above case , you need to use document.querySelector("img:nth-child(someIdx)")
//or
imageElement.classList.add("widget", "widget" + idx);
// In the above case , you need to use document.querySelector("img.widget-"+someIdx)")
container.append(imageElement);
}
document.querySelector("body").append(container);
动态ID几乎总是意味着“你做错了”。为什么你需要动态的id值? – zerkms
而......'document.write()'也是未来问题的一个好兆头。使用'var img = document.createElement(“img”); img.src = ...; img.class = ...''和'elemnent.appendChild(img);' –
使用base 4制作一个小型的数学游戏,并且因为我需要独立操作它们中的大部分(如4,16,64或256一次)。有了类名,我用函数参数跑进了一面墙,如果这些项是id的,而不是getElementsByClassName数组中的类,我可以解析这些参数。 – wmjg