javascript - 选择并设置所有具有特定子元素(跨度)的 div 的样式

标签 javascript html css

我需要选择 "display: none" 给所有具有 span.span-target 的 articles 在其中。这里我给大家举个例子。

我尝试使用 remove = document.querySelectorAll(''); 但我只能选择它们并且不知道如何添加它们 display: none 或以某种方式删除它们。

请注意,jQuery 不是一个选项

提前谢谢你。

这里的例子:

<article class="class-1">
  <div class="class-2">
    <span class="class-3">Example 1</span>
    <div class="class-4 class-41 class-42">
      <div class="class-5 class-51 class-52">
        <div class="class-6 class-61 class-62 class-63">
          <div class="class-7 class-71 class-72 class-73">
            <div class="class-8 class-81 class-82 class-83">
              <span class="span-1">
                <time class="span-2">Sep 26</time>
                <span class="span-3"></span>
                <span class="span-4"></span>
                <span class="span-target">
                  Please leave
                  <span class="span-5">
                  </span>
                </span>
              </span>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</article>

最佳答案

您可以遍历所选元素并为其添加样式

Array.from(
  document.querySelectorAll('article')
).forEach(el => {
    let shouldHide = el.querySelectorAll('.span-target').length;
    if (shouldHide) {
        el.style.display = "none";
    }
});

关于javascript - 选择并设置所有具有特定子元素(跨度)的 div 的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52699064/

相关文章:

javascript - 我收到错误 : Cannot read property 'push' of null

javascript - Jquery替换为Javascript函数的返回值

php - 变量的外部循环

javascript - 如何在 Canvas 中缩放 alpha 值?

html - IE 中的 CSS 样式表

html - 如何在 <a> 元素中垂直对齐显示为 block 的文本

css - 更少的条件/保护来检查元素 :active?

javascript - 打开新的浏览器窗口

javascript - 如何处理 Windows Phone 8 HTML5 + JavaScript 游戏的分辨率?

php - 比较数据并更新表格