javascript之级联列表

一、做一个省市级联列表

1.写的顺序:先写结构再写样式最后写逻辑

1)结构

<select>
<option>河北</option>
<option>河南</option>
<option>湖北</option>
</select>
<select>
<option>沧州</option>
<option>洛阳</option>
<option>武汉</option>
</select>
//select是下拉列表,option是下拉项

3)逻辑:1.定义一个放置省份的数组

<script>
    var provice=["河北","河南","武汉"]
</script>

2.将省份数组拼接成option标签,放入第一个select标签中(接下来的步骤和代码直接写到下面的代码中)

<body>
    <select id="sf"></select>
    <select id="sl2"></select>
<script>
var provice =["河北","河南","湖北"]//定义一个放置省份的数组
//将省份数组拼接成option标签,放入第一个select标签中
var str=""
for(var n=0;n<provice.length;n++){
    str=str+"<option>"+provice[n]+"</option>"
}
    var sf=document.getElementById("sf")
//3.将拼接好的str字符串放入第一个select标签中
    sf.innerHTML=str
//4.定义一个放置市的数组这需要用到二维数组。
//二维数组:var n=[[1,1,2],[23,52,11]]
var citys=[["沧州","石家庄"],["开封","洛阳"],["武汉","荆州"]]
//5.由于默认的第一个是河北,第二个框中默认的是河北省的市所以要小于city[0]的长度
var str2=""
for(var n=0;n<city[0].length;n++){
    str2=str2+"<option>"+city[0][n]+"</option>"
}
//将拼接好的放入第二个select标签中
        var sl2=document.getElementById("sl2")
        sl2.innerHTML=str1
//当左侧select内容放生变化,右边的也随之发生变化
        sl1.onchange=function(){
//找到数组变化的位置
            var index=sl1.selectedIndex
    //遍历数组
            var str1=""
            for(var n=0;n<citys[index].length;n++){
                str1=str1+"<option>"+citys[index][n]+"</option>"
            }
    //第二个框的内容随之变化
            sl2.innerHTML=str1
        }
</script>
</body>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JS级联单 <!-- var arrText = new Array(5); var arrValue = new Array(arrText.length); function objSetOption(select1, select2, select3) { this.select1 = select1; this.select2 = select2; this.select3 = select3; } arrText[0]= new objSetOption("选择1:", "选择2_1:,选择2_2:", "选择3_1:,选择3_2:"); arrText[1] = new objSetOption("论文:1", "语文:1,数学:2,英语:3", "初中:2,高中:3"); arrText[2] = new objSetOption("例题:2", "显示b2_1:值b2_1,显示b2_2:值b2_2", "显示b3_1:值b3_1,显示b3_2:值b3_2"); arrText[3] = new objSetOption("显示c:值c", "显示c2_1:值c2_1,显示c2_2:值c2_2", "显示c3_1:值c3_1,显示c3_2:值c3_2"); arrText[4] = new objSetOption("显示d:值d", "显示d2_1:值d2_1,显示d2_2:值d2_2", "显示d3_1:值d3_1,显示d3_2:值d3_2"); arrText[5] = new objSetOption("显示e:值e", "显示e2_1:值e2_1,显示e2_2:值e2_2", "显示e3_1:值e3_1,显示e3_2:值e3_2"); function select() { var eltSelect1 = document.test.select1; var eltSelect2 = document.test.select2; var eltSelect3 = document.test.select3; var arrSelect1, arrSelect2, arrSelect3; var arrData1, arrData2, arrData3; with(eltSelect1) { var strSelect = options[selectedIndex].value; } for(i = 0;i < arrText.length;i ++) { arrSelect1 = arrText[i].select1; arrData1 = arrSelect1.split(":"); if (arrData1[1] == strSelect) { arrSelect2 = (arrText[i].select2).split(","); for(j = 0;j < arrSelect2.length;j++) { arrData2 = arrSelect2[j].split(":"); with(eltSelect2) { length = arrSelect2.length; options[j].text = arrData2[0]; options[j].value = arrData2[1]; } } arrSelect3 = (arrText[i].select3).split(","); for(j = 0;j < arrSelect3.length;j++) { arrData3 = arrSelect3[j].split(":"); with(eltSelect3) { length = arrSelect3.length; options[j].text = arrData3[0]; options[j].val

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值