在设置javascript后访问全局变量

时间:2015-05-28 18:46:17

标签: javascript django

enter image description here

我正在尝试跟踪django中选择框的更改。我下面的代码正在使用alert(change.new_time);,所以我正确地制作了对象 -

        var changed_select_box_array = [];


        function handleChanges(id){
            var x = document.getElementById(id).selectedIndex;
            var time = document.getElementsByTagName("option")[x].value;
            var change = {id:id, new_time:time};
            alert(change.id);
            alert(change.new_time);
            changed_select_box_array[changed_select_box_array.length] = change;
            alert(changed_select_box_array[0].id);
        }

但我无法访问数组中的新项目。我尝试了4-5种不同的方法,并遵循我在本网站上找到的func中的全局变量的一些规则,我无法访问新数组中的任何内容。我在添加数组时做错了吗?我也试过推。谢谢

1 个答案:

答案 0 :(得分:1)

您可以将Object用作关联数组。

var changed_select_box_array = {};

function handleChanges() {
    var x = this.selectedIndex;
    var id = this.id;
    var time = this.getElementsByTagName("option")[x].value;
    var change = { id: id, new_time: time };
    changed_select_box_array[id] = change;
    console.log(changed_select_box_array);
}
<!--Emitation of some select inputs with change events-->
<select id="s1" onchange="handleChanges.call(this)">
    <option value="val1">Value 1</option>
    <option value="val2">Value 2</option>
    <option value="val3">Value 3</option>
</select>

<select id="s2" onchange="handleChanges.call(this)">
    <option value="val4">Value 1</option>
    <option value="val5">Value 2</option>
    <option value="val6">Value 3</option>
</select>