如果所有元素都具有相同的类,则隐藏特定的div

问题描述 投票:0回答:1

我在页面上有一堆相同的元素。所有这些元素都具有这种特殊的结构:

<div id="9p" class="col s12 m6 l2 cardmaion globalcardclass">
    <div class="card 9p">
        <div class="card-content ">
            <div class="row card-row">
                <!-- a bunch of divs -->

                <!-- a line of a card -->
                <a data-category="here" class="hidden">
                    <div style="border-top:2px dotted gray;font-size:18px;background:ivory;margin-top:1px;"
                        id="belanimation" class="card-line waves-effect waves-green">
                        Some random text goes here <span class="card-line-q">&nbsp; x 1</span><span
                            class="modspan  "></span></div>
                </a>
                <!-- a line of a card -->
                <a data-category="here" class="hidden">
                    <div style="border-top:2px dotted gray;font-size:18px;background:ivory;margin-top:1px;"
                        id="belanimation" class="card-line waves-effect waves-green">
                        Some random text goes here <span class="card-line-q">&nbsp; x 2</span><span
                            class="modspan  "></span></div>
                </a>
                <!-- a line of a card -->
                <a data-category="here" class="hidden">
                    <div style="border-top:2px dotted gray;font-size:18px;background:ivory;margin-top:1px;"
                        id="belanimation" class="card-line waves-effect waves-green">
                        Some random text goes here <span class="card-line-q">&nbsp; x 2</span><span
                            class="modspan  "></span></div>
                </a>
            </div>
        </div>
    </div>
</div>

[所有cards(上面的示例)都具有通用类= globalcardclass(这是跟踪“卡片元素”的唯一方法)

卡中的所有行都可能是(或不是!)包含类= 隐藏

因此,如果all <a>元素(lines)的类= 隐藏,我希望脚本隐藏整个卡片”>

如果一个或两个元素(lines)不具有类[[隐藏

–显示卡。如果它的所有子元素都具有类

hidden

,则我需要向特定的hide添加另一个card类。
[我在这里尝试了一些东西,但是根本不起作用。困难的部分是...当card元素获得类别为[[hidden的元素(lines)时,该卡必须再次显示...

请帮助。

<script> $(document).ready(function () { function FilterHere() { var emptyCounter = 0 jQuery(".globalcardclass a").each(function () { if ($(this).is('.hidden')) { emptyCounter++ } emptyCounter-- }); if (emptyCounter === 0) { $(".globalcardclass").hide(); } } setTimeout(FilterHere, 2000); }); </script>

UPD!

这是解决我的问题的新方法:

jsfiddle.net/q6cekb18

但是它也不起作用...

UPD 2(!)

最后!我有一些进步!

$(".globalcardclass").filter(function(){ return $(this).find(".smoothmaion:visible").length == 0; }).hide();

该代码在起作用...所有卡都在隐藏...但是...

如果再次显示“线”元素(.smoothmaion),则不会显示卡(.globalcardclass)。如何使其类似于某种形式...切换?            

我在页面上有一堆相同的元素。所有这些元素都具有以下特定结构:

javascript jquery
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.