当前位置:  开发笔记 > 编程语言 > 正文

使用jQuery隐藏IE中的选择选项

如何解决《使用jQuery隐藏IE中的选择选项》经验,为你挑选了5个好方法。

目前我使用jQuery使用以下代码隐藏/显示选择选项.

$("#custcol7 option[value=" + sizeValue + "]").hide();

这在Firefox中运行良好,但在其他浏览器中没有任何好处.如何隐藏Chrome,Opera和IE中的选项?



1> meder omural..:

我只是碰到了这个,而不是一遍又一遍地克隆整个选择我只是替换了需要隐藏span元素和隐藏跨度的选项(尽管浏览器还没有在视觉上显示它们,我认为) - 你可能需要改变你的代码(如果很复杂)迭代复杂逻辑的跨度.

跨度存储option对它的引用,并在需要显示时替换它们.

这段代码显然可以重构和美化.

http://fiddle.jshell.net/FAkEK/12/show/

编辑#2(使用这个INSTEAD):我想到,不是做所有这个克隆/引用/替换垃圾,而是用一个span包装选项,隐藏span,然后再显示只需用该选项替换span. .

http://fiddle.jshell.net/FAkEK/25/show/


我可以确认这是解决方案!虽然不符合[HTML5](http://dev.w3.org/html5/spec/single-page.html#the-select-element),但它确实有效.

2> nrodic..:

我认为meder提供了有效的答案,在这里略有改动以反映对我有用的东西:

$.fn.optVisible = function( show ) {
    if( show ) {
        this.filter( "span > option" ).unwrap();
    } else {
        this.filter( ":not(span > option)" ).wrap( "" ).parent().hide();
    }
    return this;
}

测试(长期使用BrowserStack):

Windows XP:IE 6.0,Firefox 3.0,Safari 4.0,Opera 10.0,Chrome 14.0

Windows 8:IE 10.0 Metro

iOS 3.2(iPad),iOS 6.0(iPhone 5)

Android 1.6(索尼Xperia X10)

的jsfiddle


使用此方法在选择器上使用.val()时要小心,因为它将返回隐藏值而不是选定的隐藏值.[的jsfiddle](http://jsfiddle.net/rjPeU/)

3> Tatu Ulmanen..:

你没有,它在IE中不受支持(并且可能不支持Chrome或Opera).如果您希望它们真正不可见,则必须完全删除这些选项并稍后再添加它们.但在大多数情况下,简单disabled="disabled"就足够了,并且比处理删除和添加选项简单得多.


Duuummbbb!我热情地讨厌IE.他们无法做对!由于没有明显的原因,错误的文本和密码框默认不是相同的宽度!?圆角不起作用?什么都没有正确排队......我不明白!

4> murraybiscui..:

尝试分离().如果需要,可以使用append()或insertAfter()重新附加它



5> Sachin B. R...:

要删除选项,请使用:

var opt=$("option").detach();

显示选项使用:

opt.appendTo( "select" );

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有