开发者社区> 爱六六> 正文

二级联动---Linkage

简介: 效果    主动select影响从动select。        创建Linkage函数    function Linkage(o1,o2){        //接受传过来的ID        this.
+关注继续查看

效果
    主动select影响从动select。
   
    创建Linkage函数
    function Linkage(o1,o2){
        //接受传过来的ID
        this.obj1 = document.getElementById(o1);
        this.obj2 = document.getElementById(o2);

        //定义绑定select数据的值
        var obj1Data = "1|2|3".split("|");
        var obj2Data = ["--无--".split("|"),"a1|a2|a3".split("|"),"b1".split("|"),"c1|c2".split("|")];

        //创建元素
        var opt = document.createElement("option");
        opt.innerHTML = opt.value = "--无--";
        //将创建的元素添加到select中
        this.obj1.appendChild(opt);

        for(var i=0;i<obj1Data.length;i++){
            var opt = document.createElement("option");
            opt.innerHTML = opt.value = obj1Data[i];
            this.obj1.appendChild(opt);
        }

        //设置select默认选择第一个
        this.obj1.selectIndex = 0;
 
        //同理
        this.obj2.length = 0;
        var opt = document.createElement("option");
        opt.innerHTML = opt.value = "--无--";
        this.obj2.appendChild(opt);
        this.obj2.selectedIndex = 0;

        //将this复制给_this
        var _this = this;
        
        //为select绑定onchange事件
       this.obj1.onchange = function () {
           var tmp = obj2Data[this.selectedIndex];
           _this.obj2.length = 0;
           for (var i = 0; i < tmp.length; i++) {
                var opt = document.createElement("option");
                opt.innerHTML = opt.value = tmp[i];
                _this.obj2.appendChild(opt);
            }
            if (tmp.length != 1) {
                 //当select的选项长度超过一个时为其添加option"其他"
                 var opt = document.createElement("option");
                 opt.innerHTML = opt.value = "其它";
                 _this.obj2.appendChild(opt);
             }
                    _this.obj2.selectedIndex = 0;
                }
            }
            this.init();

    }
源代码:

View Code
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <title>二级联动---Linkage---www.cnblogs.com/kuikui</title>
5 <script type="text/javascript">
6 function Linkage(o1, o2) {
7 this.obj1 = document.getElementById(o1);
8 this.obj2 = document.getElementById(o2);
9
10 var obj1Data = "1|2|3".split("|");
11 var obj2Data = ["--无--".split("|"), "a1|a2|a3".split("|"), "b1".split("|"), "c1|c2".split("|")];
12
13 this.init = function () {
14 this.obj1.length = 0;
15 var opt = document.createElement("option");
16 opt.innerHTML = opt.value = "--无--";
17 this.obj1.appendChild(opt);
18 for (var i = 0; i < obj1Data.length; i++) {
19 var opt = document.createElement("option");
20 opt.innerHTML = opt.value = obj1Data[i];
21 this.obj1.appendChild(opt);
22 }
23 this.obj1.selectedIndex = 0;
24 this.obj2.length = 0;
25 var opt = document.createElement("option");
26 opt.innerHTML = opt.value = "--无--";
27 this.obj2.appendChild(opt);
28 this.obj2.selectedIndex = 0;
29 var _this = this;
30 this.obj1.onchange = function () {
31 var tmp = obj2Data[this.selectedIndex];
32 _this.obj2.length = 0;
33 for (var i = 0; i < tmp.length; i++) {
34 var opt = document.createElement("option");
35 opt.innerHTML = opt.value = tmp[i];
36 _this.obj2.appendChild(opt);
37 }
38 if (tmp.length != 1) {
39 var opt = document.createElement("option");
40 opt.innerHTML = opt.value = "其它";
41 _this.obj2.appendChild(opt);
42 }
43 _this.obj2.selectedIndex = 0;
44 }
45 }
46 this.init();
47 }
48 </script>
49 </head>
50 <body>
51 <select id="test1">
52 </select>
53 <select id="test2">
54 </select>
55 <script type="text/javascript">
56 Linkage("test1", "test2");
57 </script>
58 </body>
59 </html>





版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
HTML 列表、表格、媒体元素【快速掌握知识点】
HTML 列表、表格、媒体元素【快速掌握知识点】
11 0
前端 --- HTML的基础标签
前端 --- HTML的基础标签
18 0
iframe的运用---特别是获取父子页面的元素
iframe的运用---特别是获取父子页面的元素
41 0
HTML的笔记及展示(2)(表单元素、input元素、label、button以及HTML5新增的一些元素)
HTML的笔记及展示(2)(表单元素、input元素、label、button以及HTML5新增的一些元素)
59 0
jQuery选择器案例之——index.html
jQuery选择器案例之——index.html
29 0
一文搞懂HTML中的表格、表单、列表
一文搞懂HTML中的表格、表单、列表
31 0
《图解HTML练习》- 实现下拉选择不是只有select
《图解HTML练习》- 实现下拉选择不是只有select
30 0
element-ui中Select 选择器列表内容居中
element-ui中Select 选择器列表内容居中
564 0
从零开始学Web之HTML(二)标签、超链接、特殊符号、列表、音乐、滚动、head等
大家好,这里是 Daotin 从零开始学 Web 系列教程。此文首发于「 Daotin的梦呓 」,欢迎大家订阅关注。在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目。
1263 0
+关注
爱六六
前端开发相关专家
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载