【发布时间】:2021-07-03 23:53:07
【问题描述】:
我有一个包含多个 div 的页面,如下所示:
`<div class="mod-tile">
Bla bla zbing
<div>Lorem Ipsum</div>
<time class="date">Crocodile Dundee 2016</time>
<div class="date">Lorem lorena 2017</div>
</div>
<div class="mod-tile">
Bla bla zbing
<div>Lorem Ipsum</div>
<time class="date">John Humdee 2016</time>
<div class="date">Izabelle Adjani 2018</div>
</div>
<div class="mod-tile">
Bla bla zbing
<div>Lorem Ipsum</div>
<time class="date">Rabbit wabbit 2017</time>
<div class="date">Bam boom 2020</div>
</div>`
如果具有“日期”类的子 div 包含 2017 作为文本,我如何使用 JQuery 隐藏父“mod-tile”div?只有包含它的“mod-tile”div,而不是所有其他“mod-tile”div。
我有限的知识尝试:
$("div:hasClass("mod-tile"):has(div:hasClass("date"):contains("2017")).hide()")
谢谢
编辑: 因此,上述 div 的解决方案是,作为先生。 Paul T. 说:
$(".mod-tile > div.date:contains('2017')").parent().hide();
如果“日期”div 嵌套在另一个 div 中,我们仍需要隐藏祖父“mod-tile”会怎样?
<div class="mod-tile">
Bla bla zbing
<div>Lorem Ipsum</div>
<div class="wabbit">
<time class="date">Crocodile Dundee 2016</time>
<div class="date">Lorem lorena 2017</div>
</div>
</div>
第二个示例的解决方案,基于 Paul 的代码并使用 Rory 的建议:
$(".mod-tile").has("div.date:contains('2016')").hide();
谢谢
【问题讨论】:
-
使用
:has()和:contains()选择器。如果您需要更具体的帮助,请编辑问题以显示您的尝试,以便我们帮助您进行调试 -
老实说我对Jquery的了解有限,我已经在OP中添加了我的尝试。我使用 hasClass 来检查班级,必须检查具有班级日期的子 div。感谢您的帮助。 PS:我的代码肯定不行。
标签: javascript jquery css