Javascript 计算jQuery中所选选项的数量?
我有多个类似名称的下拉列表,我想计算选择了选项的下拉列表的数量 比如说,Javascript 计算jQuery中所选选项的数量?,javascript,jquery,Javascript,Jquery,我有多个类似名称的下拉列表,我想计算选择了选项的下拉列表的数量 比如说, <select class="custom_select" name="customSelect1" id="customSelect1"> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> &
<select class="custom_select" name="customSelect1" id="customSelect1">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
<select class="custom_select" name="customSelect2" id="customSelect2">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
<select class="custom_select" name="customSelect3" id="customSelect3">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
0
1.
2.
0
1.
2.
0
1.
2.
这里我只想计算选择值为1或2的下拉列表的数量。如果您的
0
是禁用/默认值,您可以使用以下选项,但我建议您使用禁用的选定选项作为默认/开始选项:
函数onPressed(){
console.log($('.custom_选择选项[value!=“0”]:selected').length);
}
0
1.
2.
0
1.
2.
单击以显示所选选项
您只需检查所选选项的长度,值为0的选项除外,$(“。自定义_select>选项:不([value='0']):所选”)。长度
console.log($(“.custom_select>选项:not([value='0']):selected”).length)
$(“.custom_select”).off(“change”).on(“change”,函数(){
console.log($(“.custom_select>选项:not([value='0']):selected”).length)
});代码>
0
1.
2.
0
1.
2.
0
1.
2.
像这样的东西?此示例将使用所选值1或2进行下拉计数:
$('.custom_select')。更改(函数(){
var计数=0;
$.each($(“.custom\u select option:selected”),函数(){
if($(this.val()==1 | |$(this.val()==2){
++计数;
}
});
log('下拉计数='+计数);
});代码>
0
1.
2.
0
1.
2.
0
1.
2.
您可以使用过滤器()
获取selectedIndex大于0的所有select,并获取长度:
$('.custom_select')。更改(函数(){
var c=$('.custom_select')。过滤器((i,s)=>$(s)[0]。selectedIndex>0)。长度;
控制台日志(c);
});代码>
0
1.
2.
0
1.
2.
0
1.
2.
默认情况下,第一个选项始终处于选中状态。因此,如果0
是有效选项,请添加另一个选项。由于在所有select中都有一个公共类,请使用文档。getElementsByClassName
并使用筛选器
获取值不为空的select
函数getSelected(){
//使用spread运算符将集合转换为数组
//使用数组筛选器方法创建一个新数组,并选择具有值的数组
让k=[…document.getElementsByClassName('custom_select')].过滤器(项=>{
返回item.value!==''
})
//这将给出其值为nit空的选择数
console.log(k.length)
}
挑选出来的
0
1.
2.
挑选出来的
1.
2.
挑选出来的
1.
2.
获取所选内容
$(“.custom_select”).change(函数(){
让selectedDropDownCount=0;
设x=document.queryselectoral(“.custom_select”);
x、 forEach(y=>{
if($(“#”+y.getAttribute(“id”).val()!=“0”)
{
selectedDropDownCount++;
}
}
)
警报(“计数:+selectedDropDownCount”);
});代码>
0
1.
2.
0
1.
2.
0
1.
2.
这里是另一个版本,它使用的是一组匹配值的测试
$('.custom_select')。更改(函数()
{
变量匹配=$('.custom_select')。过滤器((i,e)=>
{
返回[“1”,“2”]。包括($(e).val());
});
控制台日志(匹配长度);
});代码>
0
1.
2.
0
1.
2.
0
1.
2.
已尝试$(“#customSelect1 option”)。length
?是的,这将返回下拉选项的总数,而不仅仅是所选选项。但所选选项是什么意思?如果以这种方式渲染它们,实际上它们都是以值为选择的0@quirimo,例如,在下拉列表1中,我选择了选项2,在下拉列表2中,我选择了选项1,并保持下拉列表3的原样,然后我想计算这3个选项中,除了默认值0之外,还有多少选项被选中。回答很好。:)谢谢,非常清晰的答案:)工作完美。最好在复制和粘贴之前阅读代码。。。代码正在运行。是的,在我写下第一个答案后,它发生了变化:)谢谢你提供了最短的答案,但我可以将其与结合起来吗。关于('change')?@DeepakSingh,是的,你可以简单地更改单击以更改….更新了答案….请检查。