如何隐藏I.E中的下拉选项

时间:2014-07-29 15:51:37

标签: jquery internet-explorer drop-down-menu show-hide

我正在尝试创建一个jquery,它将过滤IE中下拉菜单的选择。我尝试按照JQuery Hide Option doesn't work in IE and Safari(用户kinnou)的说明操作,但似乎隐藏也是删除选项。 代码是:

function filterDP(element) {
    var value = $(element).val();
    var dropdown = "#dropdownIdName";

    $( dropdown+" > option").each(function() {
        var optionValue = $(this).val();
        if (navigator.appName == 'Microsoft Internet Explorer') {
            $(dropdown).find('option[value="' + optionValue + '"]').map(function () {return $(this).parent('span').length === 0 ? this : null;})
                .wrap('<span>');
        } //'Microsoft Internet Explorer'           
        if ((value == "") ||  ($(this).text().search(value) > -1) ){ // Found=>show();
            if (navigator.appName == 'Microsoft Internet Explorer') {
                $(dropdown).find('option[value="'+optionValue+'"]').unwrap().show();
            }
            else {
                $(this).show(); //all other browsers use standard .show();                      
            }
        }               
        else { // not found=> Hide
            $(dropdown).find('option[value="'+optionValue+'"]').hide();
        }
        else { 
            $(this).hide(); //all other browsers use standard .show();                      
        }
    });
}

激活它的代码:

aa.prepend($('<input/>', {id: 'DPFilter',
                          onkeyup: 'filterDP(this)'
                         }));

1 个答案:

答案 0 :(得分:0)

错误符合:      $(dropdown +“&gt; option”)。each(function()。 每次输入时,“选项”都包含“span”。因此,$(下拉+“&gt;选项”)返回的选项越来越少。 该行应更改为:      $(下拉).find(“option”)。each(function()...