最近页面中要做个省市联动菜单,自然得与select的option打交道了
开发过程中遇到几个bug,现整理出来。
1.option.remove
因为菜单是联动的,所以城市的option要动态更新,当然就得先清除了,于是我就写了个清除的函数
function clearAllOptions(self){
var option=self.options;
for(var i=0,len=option.length;i<len;i++){
option.remove(i);
}
}
但发现在ie下并没有达到预期的效果
产生这个的原因是option总是在动态的变化,所以无法全部清除掉
解决办法是直接令它的innerHTML='',这应该也是最高效的方式
2.对应动态创建的option如果想为其设置selected属性,这要先插入dom中,然后再设置
即这样
var provinceOption=new Option(p,p);
DOM.get('#J_province').options.add(provinceOption);
if(provice==p){
provinceOption.selected="selected";
}
如果你先设置再插入,就会得到蛮郁闷的结果了
var provinceOption=new Option(p,p);
if(provice==p){
provinceOption.selected="selected";
}
DOM.get('#J_province').options.add(provinceOption);