如何使用jQuery找到包含值列表的所有选项?

时间:2016-09-01 21:03:59

标签: jquery

我正在尝试在选择菜单中查找并隐藏多个选项。

这是我的菜单

<select class="form-control" name="settingsColumnAggregate" id="settingsColumnAggregate">
    <option value="None" selected="">None</option>
    <option value="Sum">Sum</option>
    <option value="Avg">Avg</option>
    <option value="Count">Count Distinct</option>
    <option value="Max">Max</option>
    <option value="Min">Min</option>
</select>

我想要隐藏价值在["Sum","Ave","Max","Min"]

中的选项

这是我试过的

$('#settingsColumnAggregate')
.find('option[value="Sum"][value="Avg"][value="Max"][value="Min"]')
.hide();

但这不起作用。

如何通过值列表正确选择多个选项? 这是我试过的

2 个答案:

答案 0 :(得分:2)

您必须遍历所有选项或使用filters()

&#13;
&#13;
var arr = ["Sum","Avg","Max","Min"];
$('#settingsColumnAggregate option').filter(function(){
    return jQuery.inArray( this.value, arr ) !== -1
}).hide();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="form-control" name="settingsColumnAggregate" id="settingsColumnAggregate">
    <option value="None" selected="">None</option>
    <option value="Sum">Sum</option>
    <option value="Avg">Avg</option>
    <option value="Count">Count Distinct</option>
    <option value="Max">Max</option>
    <option value="Min">Min</option>
</select>
&#13;
&#13;
&#13;

或者使用find和多个选择器虽然有点杂乱但难以阅读。您忘记在代码中添加,,将其视为单选择器。

$('#settingsColumnAggregate')
.find('option[value="Sum"],option[value="Avg"],option[value="Max"],option[value="Min"]')
.hide();

答案 1 :(得分:1)

您的查询完全错误,您试图选择属性option等于value,等于Sum,等于{{1}的元素Avg我认为,同时等于Max,这不存在事件。所以,你的查询必须是这样的:

Min

请注意,我已将每个选项与昏迷分开。

您可以阅读How to write selectors

上的文档