javascript - 循环遍历具有相同类的所有 div 并使用 Javascript 隐藏文本
问题描述
我正在尝试遍历具有相同类的 div,然后在 h2 标记处找到一个特定的单词,这样我就可以识别它并隐藏或显示另一个 div。
这是我的代码:
<main id="main" class="site-main home-main" role="main">
<div class="home-product">
<div class="image-container course-trailer">
<a href="/"> <img src="./cine-6.jpg" class="home-image" alt=""></a>
</div>
<h2><a class="titleCourse" href="/">Pack 4 Cursos de Cine</a></h2>
<div class="product-info-home">
<div class="teacher-home" id="imparteText">Imparte </div>
<div class="price-home">
<span class="original-price">$2000 MXN</span>
</div>
</div>
</div>
<div class="home-product">
<div class="image-container course-trailer">
<a href="/"> <img src="./cine-6.jpg" class="home-image" alt=""></a>
</div>
<h2><a class="titleCourse" href="/">Curso de guíon</a></h2>
<div class="product-info-home">
<div class="teacher-home" id="imparteText">Imparte </div>
<div class="price-home">
<span class="original-price">$1000 MXN</span>
</div>
</div>
</div>
<div class="home-product">
<div class="image-container course-trailer">
<a href="/"> <img src="./cine-6.jpg" class="home-image" alt=""></a>
</div>
<h2><a class="titleCourse" href="/">Pack 4 Cursos de Cine</a></h2>
<div class="product-info-home">
<div class="teacher-home" id="imparteText">Imparte </div>
<div class="price-home">
<span class="original-price">$2000 MXN</span>
</div>
</div>
</div>
</main>
这是我对识别课程标题和隐藏或显示#imparteText 的验证,但我不知道如何在所有家庭产品类中执行此操作:
<script type='text/javascript'>
var title = document.getElementsByClassName('titleCourse').textContent;
var imparte = document.getElementById('imparteText');
if ( title.includes('Pack')){
imparte.style.display = 'none';
} else {
imparte.style.display = 'block';
}
</script>
有人知道该怎么做吗?非常感谢!
解决方案
循环遍历每个.titleCourse
元素。
您需要更改imparteText
为一个类,以便您可以在每个 DIV 中重复它。
要imparteText
在与 相同的 DIV 中查找 DIV titleCourse
,请使用.closest()
查找包含 DIV,然后.querySelector()
查找具有该类的 DIV。
var courses = document.querySelectorAll('.titleCourse')
courses.forEach(course => {
title = course.textContent;
var imparte = course.closest(".home-product").querySelector('.imparteText');
if (title.includes('Pack')) {
imparte.style.display = 'none';
} else {
imparte.style.display = 'block';
}
});
<main id="main" class="site-main home-main" role="main">
<div class="home-product">
<div class="image-container course-trailer">
<a href="/"> <img src="./cine-6.jpg" class="home-image" alt=""></a>
</div>
<h2><a class="titleCourse" href="/">Pack 4 Cursos de Cine</a></h2>
<div class="product-info-home">
<div class="teacher-home imparteText">Imparte </div>
<div class="price-home">
<span class="original-price">$2000 MXN</span>
</div>
</div>
</div>
<div class="home-product">
<div class="image-container course-trailer">
<a href="/"> <img src="./cine-6.jpg" class="home-image" alt=""></a>
</div>
<h2><a class="titleCourse" href="/">Curso de guíon</a></h2>
<div class="product-info-home">
<div class="teacher-home imparteText">Imparte </div>
<div class="price-home">
<span class="original-price">$1000 MXN</span>
</div>
</div>
</div>
<div class="home-product">
<div class="image-container course-trailer">
<a href="/"> <img src="./cine-6.jpg" class="home-image" alt=""></a>
</div>
<h2><a class="titleCourse" href="/">Pack 4 Cursos de Cine</a></h2>
<div class="product-info-home">
<div class="teacher-home imparteText">Imparte </div>
<div class="price-home">
<span class="original-price">$2000 MXN</span>
</div>
</div>
</div>
</main>
推荐阅读
- emacs - 组织模式:折叠问题(当前行没有找到匹配项)
- adonis.js - AdonisJs 中的会话没有破坏
- kubernetes - 如何编辑此部署 Yaml 以在容器中具有写入权限
- django - 如何在用户的 django 管理面板中使用相关字段上的日期过滤器获得统计信息?
- visual-studio-2017 - 无法在 Visual Studio 中打开 AVD 管理器,互联网连接错误消息
- javascript - 使用 datetimepicker 时如何显示接下来的 7 天?
- javascript - Chartjs注释插件彩色框颜色在来回切换后求和
- django - 向 Docker 容器提供配置文件的推荐方式
- linux - 为什么第一级进程init放在/sbin中?
- kubernetes - 将 Gcloud vpn 与 Kubernetes 一起使用时的访问限制