+发表新主题
查看: 1500|回复: 0

[代码片段] DOM select对象

[复制链接]

[代码片段] DOM select对象

[复制链接]
殷三姗 发表于 2016-1-19 20:42:30 浏览:  1500 回复:  0 [显示全部楼层] |只看大图 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
1. Select对象:

     事件:onchange: 选中项()改变时触发

     属性:select.selectedIndex : 获得当前选中项的位置

           select.options : 获得select下所有option对象

                          将select.options.length=0,等效于清空所有option

     方法:select.add(option)-----》新增option元素

           select.remove(index)--》删除指定option元素

    Option:每一个<option>元素

    创建option,同时设置内容和value属性值

      var opt=new Option(innerHTML[,value]);


    固定套路:向select中增加一个option

       select.add(new Option(innerHTML[,value]));

例如:

   

  1. <!DOCTYPE HTML>

  2. <html>

  3. <head>

  4. <title>二级联动列表</title>

  5. <meta charset="utf-8" />

  6. <style>

  7. .hide{ display: none; }

  8. </style>

  9. <script>

  10. /*实现“省”和“市”的级联下拉列表*/

  11. var cities=[

  12. [],        /*0号下标没有元素*/

  13. [{"name":'东城区',"value":101},

  14. {"name":'西城区',"value":102},

  15. {"name":'海淀区',"value":103},

  16. {"name":'朝阳区',"value":104}],



  17. [{"name":'河东区',"value":201},

  18. {"name":'河西区',"value":202},

  19. {"name":'南开区',"value":303}],



  20. [{"name":'石家庄市',"value":301},

  21. {"name":'廊坊市',"value":302},

  22. {"name":'保定市',"value":303},

  23. {"name":'唐山市',"value":304},

  24. {"name":'秦皇岛市',"value":304}]

  25. ];

  26. function getCities(selProvs){

  27.     var index=selProvs.selectedIndex;

  28. //找到name属性为cities的select元素,保存在变量selCities中

  29. var selCities=document.getElementsByName("cities")[0];//Elements返回的永远是集合

  30. //如果index==0;

  31. if(index==0){

  32. //  设置selCities的className为"hide"

  33.       selCities.className="hide";

  34. }else{//否则 ,清除selCities的className属性

  35.               selCities.className="";

  36.    //清除selCities下所有内容

  37.       selCities.innerHTML="";

  38.   selCities.add(new Option("-请选择-"));

  39.   for(var i=0;i<cities[index].length;i++){

  40.   selCities.add(

  41.    new Option(cities[index][i].name,cities[index][i]["value"])

  42.   );

  43.   }

  44. }

  45. }

  46. </script>



  47. </head>

  48. <body>

  49. <select name="provs" onchange="getCities(this)">

  50. <option>—请选择—</option>

  51. <option>北京市</option>

  52. <option>天津市</option>

  53. <option>河北省</option>

  54. </select>

  55. <select name="cities" class="hide"></select>

  56. </body>

  57. </html>
复制代码
这是页面效果:

204044c8gsowvpshppop88.png       

这是点击天津市后的页面效果:

204044c8gsowvpshppop88.png      


问题:html绑定事件    vs  js动态绑定事件

      1. html绑定的其实是字符串:

            <select onchange="createSelect(this)"></select>

                 function createSelect(){

                               this

                    }


        select.onchange=function(){//this-->select

                //eval("createSelect(this)")

                createSelect(this);

                  }

      html绑定this只能通过在html中显式传入

             如果不写,处理函数内部的this-->window

      2. js中动态绑定:

              select.onchange= createSelect;

               执行select.onchange()

              处理函数内的this就指当前触发事件的元素对象本身。
回复

使用道具 举报


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版| 赣南网

© 2013-2016 Comsenz Inc. Powered by Discuz! X3.4

用微信扫一扫

赣南网