为什么我在function里定义了一个没用的数组,会使得下拉列表里的内容失效
来源:7-6 编程练习
xxxxxxb
2019-12-07 23:08:55
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript" src="index.js"></script>
</head>
<body onload="address()">
<form>
省份:<select name="shengfen" id="sheng"></select>
市/区:<select name="shiqu" id="shi"></select>
</form>
</body>
</html>
-----------------------------------
function address(){
var s1=document.getElementById("sheng");
// var arraySf=[北京市","天津市"," 河南省","河北省"];
s1.options.add(new Option("1","1"));
}
==========================================================
第二个问题是:这样写为什么不对
function address(){
var s1=document.getElementById("sheng");
var arraySf=[北京市","天津市"," 河南省","河北省"];
addSelect(s1,0,(arraySf.length-1));
}
function addSelect(obj,start,end){
for(var i=start;i<=end;i++){
obj.options.add(new Option(arraySf[i],arraySf[i]));
}
}
3回答
同学你好。
1、同学的第一种写法只是给下拉列表添加了一个值为1的option,尝试后,是可以正常显示的:

2、尝试同学的第二个js代码,修改后截图如下:
需要将数组的定义放到function之外,因为同学在第二个函数中也使用了这个数组。至于同学修改后没有生效,可能是浏览器自动备份了js文件,需要清除缓存。可以使用Ctrl+Shift+Delete清除浏览器缓存,然后重新打开页面再试。

如果解答了同学的疑问,望采纳~
祝学习愉快~
xxxxxxb
提问者
2019-12-07
难道是数组定义范围出错了?不过我把数组放在了两个函数外面也没用欸
xxxxxxb
提问者
2019-12-07
我发现北京那边少了个引号,不过还是想问下第二个为什么是错的
相似问题