如果所有$(“选项:选中”)都有$(this).val做某事

时间:2012-07-25 20:03:02

标签: jquery

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

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

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

也许它应该像IF ALL一样....

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

它位于一个开启更改功能中,所以只有在我选择

时它才会发出警报
$("option:selected").each(function () {
    alert ($(this).val();)
});

类似于this

如果value = Show All,则选择两个(所有)选择,执行某些操作。

2 个答案:

答案 0 :(得分:3)

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

您可以使用attribute equals selector,然后检查length属性以查看与该选择器匹配的元素数量。

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

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"
}

除此之外,问题有点模糊,如果你能更明确地了解你的目标,我可以更新我的答案。

答案 1 :(得分:0)

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

如果是这种情况,请尝试:

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