Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.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
Javascript 如何知道每个循环选择了哪些选项 清单1,项目1 清单1,项目2 清单1,项目3 清单1,项目4 清单2,项目1 清单2,项目2 清单2,项目3 清单3,项目1_Javascript_Jquery_Frontend - Fatal编程技术网

Javascript 如何知道每个循环选择了哪些选项 清单1,项目1 清单1,项目2 清单1,项目3 清单1,项目4 清单2,项目1 清单2,项目2 清单2,项目3 清单3,项目1

Javascript 如何知道每个循环选择了哪些选项 清单1,项目1 清单1,项目2 清单1,项目3 清单1,项目4 清单2,项目1 清单2,项目2 清单2,项目3 清单3,项目1,javascript,jquery,frontend,Javascript,Jquery,Frontend,我如何知道当我选择前4个选项时,data index=“0”中的数量是1,当我选择以下3个选项时,data index=“1”中的数量是1。。。当我选择一个选项时,我添加了以下类“方形选项选择” 补充了评论中的澄清 在每个组中,如果选择所有选项,我有n个选项 选项每组中的数量必须更改为1 只有组1的quantity元素,如果我在 第2组的第2组数量元素应为1 我得到了这个,但只有在您选择最后一个孩子时才起作用 在每个组中,我有n个选项,如果选择所有选项,则每个组中的数量必须更改为1 很可能有比

我如何知道当我选择前4个选项时,
data index=“0”
中的数量是1,当我选择以下3个选项时,
data index=“1”
中的数量是1。。。当我选择一个选项时,我添加了以下类“方形选项选择”


补充了评论中的澄清


在每个组中,如果选择所有选项,我有n个选项 选项每组中的数量必须更改为1

只有组1的quantity元素,如果我在 第2组的第2组数量元素应为1

我得到了这个,但只有在您选择最后一个孩子时才起作用


在每个组中,我有n个选项,如果选择所有选项,则每个组中的数量必须更改为1

很可能有比下面更好、更优雅的方法来实现这一点,但是您应该能够使用这个工作示例,并在您自己的代码中使其工作


您可以使用类似于以下内容的
同级

$('.nav').each(function(index_block, item_block){   
    $('.square_option', this).on('click', function(index_opcion, item_opcion){
        if($(this).hasClass('square-option-select')){                           
            if(index_opcion == 3 && index_block == 0){                                      
                $('.quantity[data-index="' + index_block + '"]').val(1)                 
            } else if(index_opcion == 2 && index_block == 1){
                $('.quantity[data-index="' + index_block + '"]').val(1)
            } else if(index_opcion == 0 && index_block == 2){
                $('.quantity[data-index="' + index_block + '"]').val(1)
            }               
        }
    });
});
$(文档).ready(函数(){
$('.square_option')。在('单击',函数()上){
var$currentOption=$(此项);
$currentOption.toggleClass('square-option-select');
var allOptions=$currentOption.sides('.square_option')。add($currentOption);
var selectedOptions=allOptions.filter(函数(){
return$(this.hasClass('square-option-select'))
});
变量数量=$currentOption.sides('.quantity').eq(0);
var allSelected=allOptions.length==selectedOptions.length;
quantity.val(全部选定?1:“”);
});
});
.square\u选项{
显示:块;
}
.square选项选择{
背景颜色:黄色;
}

清单1,项目1
清单1,项目2
清单1,项目3
清单1,项目4
清单2,项目1
清单2,项目2
清单2,项目3
清单3,项目1

请发布您的代码。如果您遇到问题,我们可以查看问题所在。-还有,我不明白你想达到什么目的。您是否正在尝试检查所选
选项
元素所属的
数量
元素?如果您在每个“组”中选择了1个,那么您期望的是什么?在每个组中,我有n个选项,如果您选择所有选项,则数量必须更改为1,在每个组中,如果我在组1中选择了所有选项,您希望将所有
数量
元素的
数据索引
设置为
1
还是仅将组1的
数量
元素设置为
如果是这样的话,您应该能够使用您先前发布的代码,使用
同级
选择器解决此问题。只有组1的数量元素,如果我选择组2中的所有选项,则组2的数量元素应为1
$('.nav').each(function(index_block, item_block){   
    $('.square_option', this).on('click', function(index_opcion, item_opcion){
        if($(this).hasClass('square-option-select')){                           
            if(index_opcion == 3 && index_block == 0){                                      
                $('.quantity[data-index="' + index_block + '"]').val(1)                 
            } else if(index_opcion == 2 && index_block == 1){
                $('.quantity[data-index="' + index_block + '"]').val(1)
            } else if(index_opcion == 0 && index_block == 2){
                $('.quantity[data-index="' + index_block + '"]').val(1)
            }               
        }
    });
});
$('.square_option').on('click', function() {
    var $currentOption = $(this);
    $currentOption.toggleClass('square-option-select');

    var allOptions = $currentOption.siblings('.square_option').add($currentOption);

    var selectedOptions = allOptions.filter(function() {
        return $(this).hasClass('square-option-select')
    });

    var quantity = $currentOption.siblings('.quantity').eq(0);
    var allSelected = allOptions.length === selectedOptions.length;

    quantity.val(allSelected ? 1 : '');
});