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

标签 javascript html

我试图为 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/

相关文章:

javascript - 从另一个本地主机站点引用一个本地主机站点中的 Js 脚本

php - 选项卡式 jQuery 搜索结果

javascript - 使用 javascript 创建下拉 <select><option> 元素

php - 从 PHP 脚本向 HTML 元素 ID 添加类

php - 无法在 codeigniter 3 中加载 css 文件

javascript - 在 jQueryUI 可排序表之间移动一列,包括 th

javascript - 在 jquery 中使用键链接按下

javascript - 简单的 AngularJS 应用程序将无法工作。如何调试这个?

javascript - 使用 JS DOM 将 html 标签替换为另一个标签

javascript - HTML 菜单设置父项类(如果子项有类)