我为这个愚蠢的问题道歉。我已经看到人们得到这个问题的多个答案,但由于某种原因我无法得到它。我必须下拉,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中使用它,我将非常感激。
答案 0 :(得分:1)
Internet Explorer不支持隐藏options
元素中的select
。
您只能这样禁用或启用它们:
$(this).attr('disabled', 'disabled').hide();
$(this).removeAttr('disabled').show();
您可以使用remove()
删除选项,然后重新添加。但它更具参与性取决于您首先创建选项的方式。如果它是一个静态列表,它可能相当简单。