我正在尝试使用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");
我很想知道为什么会导致问题
答案 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>