javascript菜单列表二级联动问题?

来源:百度知道 编辑:UC知道 时间:2024/07/08 17:54:57
这两天有一个网友给我发了一个菜单列表的二级联动,有些语句不明白它的意思,请问这句var provinceCity=city[sltProvince.selectedIndex - 1];是什么意思呢?为什么要从city列表中填充省份的值呢?谁能告诉我呢,具体点哦?

<script language="JavaScript" type="text/javascript">
//定义了城市的二维数组,里面的顺序跟省份的顺序是相同的。通过selectedIndex获得省份的下标值来得到相应的城市数组
var city=[
["北京","天津","上海","重庆"],
["南京","苏州","南通","常州"],
["福州","福安","龙岩","南平"],
["广州","潮阳","潮州","澄海"],
["兰州","白银","定西","敦煌"]
];

function getCity(){
//获得省份下拉框的对象
var sltProvince=document.form1.province;
//获得城市下拉框的对象
var sltCity=document.form1.city;

//得到对应省份的城市数组
var provinceCity=city[sltProvince.selectedIndex - 1];

先弄明白selectedIndex 是什么意思?

selectedIndex 属性可设置或返回下拉列表中被选选项的索引号。

<OPTION VALUE="0">请选择所在省份 </OPTION> 这个的selectedIndex =0
<OPTION VALUE="直辖市">直辖市 </OPTION> 这个的selectedIndex =1

如果选了 直辖市

var provinceCity=city[sltProvince.selectedIndex - 1];
也就是:
var provinceCity=city[0];// ["北京","天津","上海","重庆"]

然后城市列表就出现这4个城市

provinceCity=city[sltProvince.selectedIndex - 1]

sltProvince.selectedIndex为获得下拉列表中选择的第几项,
你选择[直辖市]值为1,选[江苏省]为2.

而city数组取值是以0开始。及city[0]为第一,所以需要-1才能对应上你所选。