Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如果所有$(“option:selected”)都有$(this).val,请执行某些操作_Jquery - Fatal编程技术网

Jquery 如果所有$(“option:selected”)都有$(this).val,请执行某些操作

Jquery 如果所有$(“option:selected”)都有$(this).val,请执行某些操作,jquery,Jquery,我有一组选择。我正在尝试做一些类似的事情: 如果每个$(“选项:已选”)都有$(此).val='equal in all'做点什么 if ($('option:selected[value="equal in all"]').length > 0){ // "equal in all" is selected } 但我不知道我是否尝试将每个值放入var中,然后进行比较或计数 也许应该是这样的,如果所有人都 此代码可以工作,但可以看到如何使用它 它位于on change功能中,因此只有

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

如果每个
$(“选项:已选”)
都有
$(此).val='equal in all'
做点什么

if ($('option:selected[value="equal in all"]').length > 0){
  // "equal in all" is selected
}
但我不知道我是否尝试将每个值放入
var
中,然后进行比较或计数

也许应该是这样的,如果所有人都

此代码可以工作,但可以看到如何使用它

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

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

有点像

如果在value=Show all时选择了两个(全部)选项,则执行某些操作

if ($('option:selected[value="equal in all"]').length > 0){
  // "equal in all" is selected
}
可以使用,然后检查
length
属性以查看有多少元素与该选择器匹配

您还可以通过缓存第一个选择器,然后存储过滤后的版本(并比较长度),比较“全部相等”与所有选定元素相等的值的数量。e、 g


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

我假设只有当页面上的所有选择都选择了特定值时,你才想执行一些代码

如果是这种情况,请尝试以下方法:

var $selects = $("select");
$filteredSelects = $selects.filter(function(el){
    return $(el).val() == 'equal in all';
});
if($selects.length == $filteredSelects.length){
    //Do Something
}

我更新了我的问题。尝试了第二个选项2但没有sucess@JGSilva:Oops,在第二个示例中忘记了对
.length
的引用。现在试一试。@Brad Christie:for
options均衡
你仍然需要
option:selected
@KarolyHorvath:这更多是因为我使用了
find
而不是我应该使用的:
filter
。我现在保证。@JGSilva:你在找什么?您是否正在尝试确定是否所有
select
元素都已选择“全部显示”?如果是的话。