全局变量死在函数javascript

时间:2015-05-28 19:31:01

标签: javascript

我正在尝试使用js更新全局数组,我只是意识到我无法从函数中的任何位置访问任何有关它的内容。删除if / else语句后,new_time的警报会起作用,但最后一个警报不起作用。使用if / else,它会炸掉我的代码并且没有任何运行。我读到你只能按名字访问全局变量,为什么changed_select_box_array会导致问题呢? (也尝试将其称为全局。,窗口。,以及此。)

var one = document.optionObject("id_open_time_1");

var changed_select_box_array = [];

function showID(id){
    if (changed_select_box_array.length > 0){
        alert('somethin');
    }
    else{
        alert('nuttin');
    }
    var x = document.getElementById(id).selectedIndex;
    var time = document.getElementsByTagName("option")[x].value;
    var change = {id:id, new_time:time};

    alert(change.new_time);

    changed_select_box_array.push(change);
    alert(changed_select_box_array[0].id);
}

不知何故,上面的这个片段(几天没有影响任何东西)导致了这个问题:

    var one = document.optionObject("id_open_time_1");

我很想知道为什么会导致问题

1 个答案:

答案 0 :(得分:1)

我没有看到错误。适合我。

<select id="test">
    <option value="1">T1</option>
    <option value="2" selected>T2</option>
    <option value="3">T3</option>
</select>

<script>
var changed_select_box_array = [];
showID('test');

function showID(id){
    if (changed_select_box_array.length > 0){
        alert('somethin');
    }
    else{
        alert('nuttin');
    }
    var x = document.getElementById(id).selectedIndex;
    var time = document.getElementsByTagName("option")[x].value;
    var change = {id:id, new_time:time};

    alert(change.new_time);

    changed_select_box_array.push(change);
    alert(changed_select_box_array[0].id);
}
</script>

JsFiddle