javascript - 全局变量在函数 javascript 中失效

标签 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");

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

最佳答案

我没有看到错误。对我有用。

<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

关于javascript - 全局变量在函数 javascript 中失效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30515556/

相关文章:

javascript - setSelectionRange 适用于输入字段,但如何将光标放在可内容编辑字段的末尾?

javascript - HTML Canvas ,使用灰度图像作为蒙版

javascript - jquery动态表id选择

javascript - 页面源没有动态 div 元素

javascript - 为什么数组中没有填充 ajax 响应?

php - jQuery ajax php重命名文件名的一部分

javascript - 在 Meteor 中访问订阅时出现问题

javascript - 按钮填充可用空间,将它们分组到下拉菜单中

javascript - 将集合中的数据以一种格式分组为另一种格式

javascript - 是否有可能捕获 net::ERR_BLOCKED_BY_CLIENT?