JavaScript 函数并不执行所有内容

标签 javascript for-loop

我有一个数组Orte,其中包含邮政编码和城市名称。 现在我想根据输入字段中输入的数字更改下拉列表。 输入字段有一个 onchange 函数。该函数如下所示。

到目前为止,除了 for 循环之后的最后一行之外,脚本都有效。它永远不会添加最后一部分,我不知道为什么。 有人可以帮我吗?

提前感谢您的回答! bool 兹

function updateOrt(eingabe){    
    document.getElementById("ort_platzhalter").innerHTML = '<select name="ort">'
    for (var i = 1; i <= Orte.length; i++){ 
        if(Orte[i].PLZ == eingabe){
            document.getElementById("ort_platzhalter").innerHTML += '<option value="' + Orte[i].id + '">' + Orte[i].Ort + '</option>'
        }
    } 
    document.getElementById("ort_platzhalter").innerHTML += "</select>"
}

最佳答案

您应该一次性更新innerHTML。首先构建字符串,然后分配它。另外,数组是零索引的,所以我猜你想从 0 开始,并在达到 Orte 的长度(i = Orte.length)时结束。

function updateOrt(eingabe){
    var str = '<select name="ort">'
    for (var i = 0; i < Orte.length; i++){ 
        if(Orte[i].PLZ == eingabe){
            str += '<option value="' + Orte[i].id + '">' + Orte[i].Ort + '</option>'
        }
    } 
    str += "</select>"
    // now assign the str to innerHTML
    document.getElementById("ort_platzhalter").innerHTML = str;
}

关于JavaScript 函数并不执行所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27658898/

相关文章:

r - 如何替换嵌套的 for 循环?

javascript - 当半透明 div 覆盖另一个 div 时,CSS 移除悬停效果

javascript - JQuery 通过 JQuery 对话框删除 html

javascript - jScrollPane:当我调用 reinitialise() 时,不会在谷歌浏览器中创建 jspVerticalBar div

c++ - 使用 for 循环的无符号 int 反向迭代

r - r 中的索引,某些点的问题

javascript - 分块接收的 Node.js 和 Socket.io 数组

javascript - 如何使用纯js向DOM插入并执行脚本标签

c - 迭代错误

python - 当列表中的元组没有返回任何内容时写入错误