我有select
个国家/地区,其值为2个字符代码。
<select>
<option value=""> </option>
<option value="AF">Afghanistan</option>
<option value="AX">Åland Islands</option>
...
<option value="ZW">Zimbabwe</option>
</select>
我想禁用所有不在正在生成的数组中的选项。
var allowedCountries = ["AF", "AX", "AL", "DZ", "AS", "AD", "AO"];
有没有办法用.filter()
执行此操作,还是必须循环选项?
答案 0 :(得分:2)
$("option").filter(function() {
return allowed_countries.indexOf(this.value) == -1;
}).prop('disabled', true);
您应该将""
放入allowedCountries
,以便取消选择菜单。要么是这样,要么在过滤后重新启用它。
答案 1 :(得分:1)
您可以尝试将inArray
与filter
:
$("option").filter(function (i) {
return $.inArray(this.value, allowedCountries) == -1
}).prop("disabled", true);