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:foroptions均衡
你仍然需要option:selected
@KarolyHorvath:这更多是因为我使用了find
而不是我应该使用的:filter
。我现在保证。@JGSilva:你在找什么?您是否正在尝试确定是否所有select
元素都已选择“全部显示”?如果是的话。