猿问

如果跨度包含 0,则 Jquery 隐藏父标签

我有几个标签,如下所示:


<label class="custom-control custom-checkbox mb-3">

            <input type="checkbox" class="brand custom-control-input filters filter_level_100" data-filter-level="100" data-filter-type="checkbox" name="checkbox0" id="checkbox0" value="282">

            <span class="custom-control-label"> BMW<span class="label label-secondary float-right brand_counts" id="brand_counts_BMW">0</span> </span> </label>

现在我想隐藏标签,如果跨度包含“0”!以下仅隐藏跨度。


$(".brand_counts").filter(function(){

           $(this).text().trim() === "0";

        }).hide();

但是如何隐藏父标签?谢谢


斯蒂芬大帝
浏览 158回答 1
1回答

弑天下

首先,您缺少过滤器内的返回。没有它,您将永远找不到元素。其次,您需要将树查找到标签,因此您必须使用最接近的。$(".brand_counts").filter(function() {&nbsp; return $(this).text().trim() === "0"; // you missed return here}).closest('label').hide(); // select the grandparent with closest<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><label class="custom-control custom-checkbox mb-3">&nbsp; <input type="checkbox" class="brand custom-control-input filters filter_level_100" data-filter-level="100" data-filter-type="checkbox" name="checkbox0" id="checkbox0" value="282">&nbsp; <span class="custom-control-label"> BMW<span class="label label-secondary float-right brand_counts" id="brand_counts_BMW">0</span> </span>&nbsp;</label>
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答