在IE中显示/隐藏选项

时间:2015-10-08 18:47:10

标签: javascript jquery internet-explorer

我为这个愚蠢的问题道歉。我已经看到人们得到这个问题的多个答案,但由于某种原因我无法得到它。我必须下拉,1州和其他地方。当用户选择状态时,我需要过滤位置。我在Mac上使用Chrome工作正常。使用以下代码。 jsfiddle

我也会在这里粘贴代码。

HTML

<select id="states">
<option value="none">-- Select State --</option>
<option value="TX">Texas</option>
<option value="AL">Alabama</option>
</select>

<select id="locations">
<option value="none">-- Select Location --</option>
<option>123 Nowhere TX</option>
<option>123 Somewhere TX</option>
<option>123 Elsewhere AL</option>
<option>123 Where? AL</option>
</select>

JS

$(document).ready(function(){

$('#states').change( function() {
    var $root = $(this);
    var selectedState = $root.val();
    $('#locations').val('none');

    $('#locations option').each(function(){
        var location = $(this).text();
        var abbr = location.substr(location.length - 2);
        if ( abbr != selectedState ) {
            $(this).hide();
        } else {
            $(this).show();
        }
    });

});

});

如果有人可以帮助我在IE中使用它,我将非常感激。

1 个答案:

答案 0 :(得分:1)

Internet Explorer不支持隐藏options元素中的select

您只能这样禁用或启用它们:

$(this).attr('disabled', 'disabled').hide();

$(this).removeAttr('disabled').show();

您可以使用remove()删除选项,然后重新添加。但它更具参与性取决于您首先创建选项的方式。如果它是一个静态列表,它可能相当简单。