gpt4 book ai didi

javascript for 循环不会迭代所有元素

转载 作者:行者123 更新时间:2023-11-28 15:21:17 26 4
gpt4 key购买 nike

我试图为 distinctCtyNames 中的每个元素添加一个 div大批。但是,如果我按一次按钮,它只会创建几个 div,我必须多次按按钮才能弹出所有元素并使它们成为 div。当我使用for(i=0;i<length;i++){ctyName = distinctCtyNames[i] /*and create div*/}时,不存在这个问题

我的代码如下:

<input type="submit" name="BtnLogin" value="addDiv" onclick="addDiv()" id="addDiv" style="height:26px;width:100px;Z-INDEX: 105; LEFT: 440px; TOP: 72px"/>

console.log(distinctCtyNames);
for (ctyName in distinctCtyNames){
var element = document.createElement('div');
ctyName = distinctCtyNames.pop();
element.id = ctyName;
element.style['cssText'] = "width: 1000px; height: 400px; margin: 0px auto;"
oContent.appendChild(element);
}

最佳答案

您可以使用 array.pop 方法在 for 循环内重新分配 ctyName 变量。
当您从头开始迭代时,pop 将删除数组中的最后一个元素,当您删除最后一个元素时,数组将发生变化,因此不会迭代整个数组。
当您运行循环时,将为 distinctCtyNames 数组中的每个实例设置 ctyName var。

 for (ctyName in distinctCtyNames) { ...

可以写成:

 for(var i=0,len=distinctCtyNames.length;i<len;i++) {
var ctyName = distinctCtyNames[i];

停止在循环中使用 pop 方法,它应该可以正常工作。

关于javascript for 循环不会迭代所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31311532/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com