IE浏览器的select下的option display属性是不生效的css
好比chrome
< select > 浏览器 < option value = "1" >first</ option > ide < option value = "2" style = "display:none;" >second</ option > 测试 < option value = "3" >third</ option > spa </ select > .net < input type = "button" value = "显示or隐藏" onclick = "toggle()" > code < script > blog function toggle(){ ip if($("select").find("option[value=2]").css("display")=="none"){ $("select").find("option[value=2]").show(); }else{ $("select").find("option[value=2]").hide(); } } </ script > |
上方HTML 代码在IE 和 chrome(FF等) 浏览器表现是不同的
IE中select下有3个option都展示出来了,FF和Chrome等则只展示了2个,第二个隐藏状态,点击button 运行function toggle后才会显示出来
下面本身写了个方法处理
function initOption(){ $("select").find("option").each(function(i,obj){ if($(obj).parent(".parentspan").length>0){ $(obj).unwrap(); } if($(obj).css("display")=='none'){ $(obj).wrap($("< span class ='parentspan' style = 'display:none;' ></ span >")); } }); } |
运行完toogle以后 在调用initOption方法便可
原理就是先根据option是否有咱们后增长的父元素,若是有就先取消掉,
而后根据option的display属性若为none,则外包一个各浏览器都支持display属性的元素,好比span,而后将span设置成隐藏,则option就显示不出来了
上面的代码纯手打,已经在项目中测试过,可是博客中未通过测试(不排除手误的状况)
参考链接:http://blog.csdn.net/sanyuedexuanlv/article/details/26455925