创建一个循环以扫描数组的值并将其与元素的类名匹配

米拉吉亚里

我正在尝试创建一个多重过滤器,该过滤器在单击复选框后会显示相关元素。选中绿色复选框后,应显示绿色div,单击绿色和红色复选框后,应显示具有绿色和红色类别的div,否则不显示。单击复选框后,我已将复选框类存储在数组中。

有限元

安慰

<script>
        var classname = [];
        $( function () {

            $( '.check' ).change( function () {
                if ( $( this ).is( ':checked' ) ) {
                    // $( '.main div' ).css( 'display', 'none' );

                    classname.push( ( this ).className );
                    console.log( classname );

                }
                if ( $( this ).is( ':checked' ) == false ) {
                    classname.pop( ( this ).className );
                };
            } );
        } );
        $( '#clear' ).on( 'click', () => {
            $( '.check' ).prop( 'checked', false );
            classname.length = 0;
        } );

    </script>
 <div class="container grid">
                <div class="sidebar">
                    <input type="checkbox" class="green  check">Green
                    <input type="checkbox" class="blue check">Blue
                    <input type="checkbox" class="red check">Red
                    <input type="checkbox" class="yellow check">Yellow
                    <input type="button" value="Clear" id="clear">
                </div>
                <div class="main">
                    <div class="green yellow">Green Yellow</div>
                    <div class="blue red"></div>
                    <div class="yellow"></div>
                    <div class="blue"></div>
                    <div class="green"></div>
                    <div class="green red">Green Red</div>
                    <div class="red yellow">Red Yellow</div>
                    <div class="yellow blue">Yellow Blue</div>
                    <div class="red green">Red Green</div>
                </div>
</div>

阿南德·舒克拉

        var classname = [];
        $( function () {

            $( '.check' ).change( function () {
                if ( $( this ).is( ':checked' ) ) {
                    // $( '.main div' ).css( 'display', 'none' );
                    
                    if((this).className){
                    classname.push((this).className.split(' ')[0].trim());
                    $( '.main div' ).each(function() {
                    $(this).css('display','none');
                    var block = this;
                    classname.forEach(function(value,index,array){
                    if(block.className.includes(value)){
                      $(block).css('display','block');
                      }
                    });
    });
                    

                    }

                }
                if ( $( this ).is( ':checked' ) == false ) {
                    classname.pop( ( this ).className );
                };
            } );
        } );
        $( '#clear' ).on( 'click', () => {
            $( '.check' ).prop( 'checked', false );
            classname.length = 0;
                      $( '.main div' ).each(function() {
                    
                  $(this).css('display','block');
                  
    });
        } );

    
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<div class="container grid">
                <div class="sidebar">
                    <input type="checkbox" class="green  check">Green
                    <input type="checkbox" class="blue check">Blue
                    <input type="checkbox" class="red check">Red
                    <input type="checkbox" class="yellow check">Yellow
                    <input type="button" value="Clear" id="clear">
                </div>
                <div class="main">
                    <div class="green yellow">Green Yellow</div>
                    <div class="blue red">Blue Red</div>
                    <div class="yellow">Yellow</div>
                    <div class="blue">Blue</div>
                    <div class="green ">Green</div>
                    <div class="green red">Green Red</div>
                    <div class="red yellow">Red Yellow</div>
                    <div class="yellow blue">Yellow Blue</div>
                    <div class="red green">Red Green</div>
                </div>
</div>

我已经对您的代码进行了一些更改。检查是否可以回答您的问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何扫描数组中的每个值并将其与另一个数组中的每个值进行比较?

如何使用一个匹配值显示数组值并将其显示为表格

在forEach循环中创建一个对象并将其推入数组

单击一个元素并将其从数组中删除

迭代一个函数并将其推入数组以创建具有一定数量元素的数组

如何创建一个类并将其添加到for循环的列表中,以从控制台接收输入

在 json 对象中循环一个数组值并将其转换为单个字符串

从一个数组中取整,为每个元素创建一个矩阵N * M,并将所有值设置为元素,而没有for循环

将数组中的值与另一个数组中的值进行匹配,并将新数组中的对应值作为循环返回

创建一个键匹配值的关联数组

创建一个循环以下载气象数据并将其写入csv

在数据帧上使用文件名并将其与另一个列表匹配并存储列表元素

你如何扫描文本文件,并将其转换为一个二维字符数组?

在一个promise中循环一个数组并将其作为参数传递给下一个promise后,如何在链接时返回一个值?

创建一个包含每个循环值的数组

创建一个类的实例,并将其添加到地图。Java的

从方法创建另一个类的实例并将其输出添加到地图

如何制作一个可以让我制作元素并将其添加到数组的函数?

在数组中查找元素并将其添加到另一个javascript

尝试创建一个for循环,检查我的文件名中是否存在反斜杠,并将其替换为正斜杠

在函数中创建一个数组并将其返回给main()

创建一个包含单词的数组列表并将其与用户输入的消息进行比较

单击React元素列表并将其作为值存储在另一个列表中

创建一个从数组接收信息并将其添加到我的模板卡片组件的 for 循环

Javascript 2个对象数组,从一个对象数组获取一个值并将其分配给另一个对象数组

Java入门问题:如何创建一个采用多个值并将其返回给main的方法?

创建一个新列并将其显示为数字值

如何获取一个变量的值并将其设置为等于类中的另一个变量?

将数组传递给sql并将其插入一个值的链接表中