我有一个types
数组如下所示,我尝试只启用types
数组中存在的Dropdown选项
var types = ["LEDES 1998B", "LEDES 1998B-INTL"]
在用户界面上,我只需要看到' LEDES 1998B',' LEDES 1998B-INTL'在types
中的下拉列表中,必须隐藏其他选项
<select id="FormatType" name="instance_FormatType.id" data-name="Format Type">
<option value="">-- Select --</option>
<option value="1">
LEDES 1998B
</option>
<option value="2">
LEDES 1998B-INTL
</option>
<option value="3">
LEDES 98BI
</option>
<option value="4">
Summary
</option>
有人可以帮我这样做吗?
答案 0 :(得分:5)
假设您的阵列格式有效,您可以使用filter
检查选项。试试这个:
var types = ["LEDES 1998B", "LEDES 1998B-INTL"];
$('#FormatType option:not(:first)').filter(function() {
return $.inArray($.trim($(this).text()), types) == -1;
}).remove(); // or possibly hide() depending on your need/browser support
答案 1 :(得分:2)
Vanilla JS版:
var select = document.getElementById('request5900-instance_qiFormatType');
var types = ["LEDES 1998B", "LEDES 1998B-INTL"];
for( var i=0; i<select.options.length; i++ ){
var label = select.options[i].innerHTML.trim();
if( types.indexOf( label ) < 0 ){
select.removeChild( select.options[i] );
// need to decrement because indexes change after node removal
i--;
}
}
答案 2 :(得分:2)
$( "option" ).each(function( index ) {
if(jQuery.inArray(($( this ).text()), types)!==-1) {
$("option[value=" + ($(this).attr('val')) + "]").hide();
}
});
希望这有帮助!
答案 3 :(得分:0)
您无法隐藏它们,可以删除或禁用
可以通过以下方式禁用它,例如禁用值为3的选项
$("#request5900-instance_qiFormatType>option[value='3']").attr('disabled', true);