马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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]));
例如:
- <!DOCTYPE HTML>
- <html>
- <head>
- <title>二级联动列表</title>
- <meta charset="utf-8" />
- <style>
- .hide{ display: none; }
- </style>
- <script>
- /*实现“省”和“市”的级联下拉列表*/
- var cities=[
- [], /*0号下标没有元素*/
- [{"name":'东城区',"value":101},
- {"name":'西城区',"value":102},
- {"name":'海淀区',"value":103},
- {"name":'朝阳区',"value":104}],
-
- [{"name":'河东区',"value":201},
- {"name":'河西区',"value":202},
- {"name":'南开区',"value":303}],
-
- [{"name":'石家庄市',"value":301},
- {"name":'廊坊市',"value":302},
- {"name":'保定市',"value":303},
- {"name":'唐山市',"value":304},
- {"name":'秦皇岛市',"value":304}]
- ];
- function getCities(selProvs){
- var index=selProvs.selectedIndex;
- //找到name属性为cities的select元素,保存在变量selCities中
- var selCities=document.getElementsByName("cities")[0];//Elements返回的永远是集合
- //如果index==0;
- if(index==0){
- // 设置selCities的className为"hide"
- selCities.className="hide";
- }else{//否则 ,清除selCities的className属性
- selCities.className="";
- //清除selCities下所有内容
- selCities.innerHTML="";
- selCities.add(new Option("-请选择-"));
- for(var i=0;i<cities[index].length;i++){
- selCities.add(
- new Option(cities[index][i].name,cities[index][i]["value"])
- );
- }
- }
- }
- </script>
-
- </head>
- <body>
- <select name="provs" onchange="getCities(this)">
- <option>—请选择—</option>
- <option>北京市</option>
- <option>天津市</option>
- <option>河北省</option>
- </select>
- <select name="cities" class="hide"></select>
- </body>
- </html>
复制代码这是页面效果:
这是点击天津市后的页面效果:
问题: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就指当前触发事件的元素对象本身。 |