Как скрыть и Показать параметры выбора с помощью JQuery в IE

Я пытаюсь скрыть некоторые параметры из выпадающего списка. В jQuery .hide() и .show() отлично работает в Firefox и Chrome, но не повезло в IE.

какие-нибудь идеи?

2 ответов


из многих возможных подходов этот метод требует обнюхивания браузера (что в целом не очень), но не требует наличия нескольких копий одного и того же списка выбора для замены.

//To hide elements
$("select option").each(function(index, val){
    if ($(this).is('option') && (!$(this).parent().is('span')))
        $(this).wrap((navigator.appName == 'Microsoft Internet Explorer') ? '<span>' : null).hide();
});

//To show elements
$("select option").each(function(index, val) {
    if(navigator.appName == 'Microsoft Internet Explorer') {
        if (this.nodeName.toUpperCase() === 'OPTION') {
            var span = $(this).parent();
            var opt = this;
            if($(this).parent().is('span')) {
                $(opt).show();
                $(span).replaceWith(opt);
            }
        }
    } else {
        $(this).show(); //all other browsers use standard .show()
    }
});

заслуга в этом лежит Дима Свирид здесь: http://ajax911.com/hide-options-selecbox-jquery/


просто упомянуть, что IE11 navigator.appName возвращает 'Netscape' :) Поэтому, принимая это во внимание:

$("select option[value='your_option_value']").wrap((navigator.appName == 'Microsoft Internet Explorer' || navigator.appName == 'Netscape') ? '<span>' : null).hide();