1

我有一组选择。我正在尝试做类似的事情:

如果每个$("option:selected")人都有$(this).val='equal in all'做某事。

但我不知道我是否尝试将每个值放入var然后比较或计数。

也许应该是 IF ALL has....

此代码有效,但可以查看如何处理它...

它位于 on change 功能中,因此仅在我选择时才会发出警报

$("option:selected").each(function () {
    alert ($(this).val();)
});

这样的。

如果在 value= Show All 的情况下选择了 both(all) 选择,则执行某些操作。

4

2 回答 2

3
if ($('option:selected[value="equal in all"]').length > 0){
  // "equal in all" is selected
}

您可以使用属性 equals selector,然后检查length属性以查看有多少元素与该选择器匹配。

您还可以比较有多少值等于“全部相等”与通过缓存第一个选择器选择的所有元素,然后存储过滤版本(并比较长度)。例如

var selectedOptions = $('option:selected'),
    optionsEqualInAll = selectedOptions.filter('[value="equal in all"]');
if (selectedOptions.length == optionsEqualInAll.length){
  // all selected options have the value "equal in all"
}

除此之外,这个问题有点模糊,也许如果你能更明确地说明你要做什么,我可以更新我的答案。

于 2012-07-25T20:05:43.237 回答
0

我假设您仅在页面上的所有选择都选择了特定值时才想执行一些代码。

如果是这种情况,试试这个:

var $selects = $("select");
$filteredSelects = $selects.filter(function(el){
    return $(el).val() == 'equal in all';
});
if($selects.length == $filteredSelects.length){
    //Do Something
}
于 2012-07-25T20:08:32.640 回答