本来目标只是隐藏select下的option
最初尝试用jQuery里的$("select option").hide()和$("select option").show()控制option隐藏与出现,firefox4和chrome10均ok,但是chrome不能正确判断:hidden属性(只要进行过.hide(),.is(":hidden")就永远为true),随后发现可以用(.css("display:none")=="none")判断,然后发现IE(我用的是腾讯TT,疑似6)等也可以判断。但是,IE(以及opera、safari)不支持option的display属性的,hide、show操作会改变display的值,但option的可见性不会变化
。
之后痛苦地查解决方案,大家均表示要在代码里备份一下然后remove,需要的时候再根据备份add,觉得极为麻烦,几乎放弃,突然google到一个,使用.wrap("<span style='display:none'></span>"); 达到隐藏效果,再使用unwrap()去除隐藏效果。还能天然使用jQuery的$("select>option")和$("select span option")判断是否隐藏,终于完成...
btw, firebug+firerainbow不错,不过,这导致ff下的代码总是第一个迅速调通的,然后就只能


......还有,刚发现上面的方法在opera下option只是会变成空白,但还可以选
....算了,一共就5个人会访问的页面里没人会用opera的...
Thanks to:http://www.jb51.net/article/20842.htm
本文探讨了在不同浏览器中隐藏和显示select下option元素的技术挑战,并分享了一个有效的解决方案,通过使用.wrap和.unwrap方法来实现跨浏览器兼容的选项隐藏功能。同时,文章还提到了一些额外的优化技巧,如使用firebug和firerainbow工具来快速调试代码。
845

被折叠的 条评论
为什么被折叠?



