隔离外部.js数组中的特定值

时间:2014-10-20 01:22:30

标签: javascript arrays if-statement

我目前正在尝试从外部javascript数组中填充选择列表。它工作,但我试图使用ID列填充只有某些值,这是失败的。我正在使用复选框和“If”语句来查看选中的框,并根据此选择填充相应的数组值。然后我在for循环中使用另一个'If'来匹配数组中的ID值,并将匹配的值添加到选择中。但是,似乎完全无视条件并将整个数组读入选择列表。我的代码可能是一个明显的错误,因为我只是一个新手。

function populateIslandList(){

        var form = document.forms["island_form"];
        var islands = form.islands;
        if (islands[0].checked){alert("works");
            for (i = 0; i < pislands.length; i++)
            if (pislands[i][1] = 1){
            document.forms["location"].islands.options[i] =
            new Option(pislands[i][0], i)}};
        if (islands[1].checked){alert("works");
            for (i = 0; i < pislands.length; i++)
            if (pislands[i][1] = 2){
            document.forms["location"].islands.options[i] =
            new Option(pislands[i][0], i)}};    
        }

1 个答案:

答案 0 :(得分:0)

你的第一个错误就在这里:

var islands = document.getElementById("island_form");

document.getElementById()返回单个DOM元素,而不是对象列表。因此,islands[0]islands[1]将被取消定义,islands[0].checked将导致脚本错误。

您只能拥有一个具有给定ID的DOM元素。你可以有多个带有类名的元素,所以也许你应该切换到使用类名并使用document.getElementsByClassName("something")


仅供参考,你应该在浏览器错误控制台或调试控制台中查看脚本错误,因为这应该会给你一些麻烦。