javascript - Vanilla JS 查找缺少子元素的元素

标签 javascript

我试图获取一个 bool 值,让我知道父元素是否有子元素。一些限制是:

  1. 可以有 x 个这样的“盒子”
  2. 检查并查看是否有任何框具有页脚元素
  3. 如果框没有页脚元素,请添加一个类

    <div class="data-trend"> <header></header> <div class="main"></div> <footer></footer> </div>

    <div class="data-trend"> <header></header> <div class="main"></div> <footer></footer> </div>

    <div class="data-trend"> <header></header> <div class="main"> <span class="glyphicons"><span> <!-- On the glyphicons I would add class if there is no footer --> </div> <!-- notice no footer --> </div>

最佳答案

将上述评论移至实际答案中:

var elems = document.querySelectorAll('.data-trend'),
    len = elems.length,
    i = -1
while(++i < len) {
  if(!elems[i].querySelector('footer')) elems[i].classList.add('no-footer')
}
.no-footer { border: 3px solid blue; }
<div class="data-trend">
  <header>Testing</header>
  <div class="main"></div>
  <footer>Footer</footer>
</div>

<div class="data-trend">
  <header>Testing</header>
  <div class="main"></div>
  <footer>Footer</footer>
</div>

<div class="data-trend">
  <header>Testing</header>
  <div class="main">
    <span class="glyphicons"><span>
  </div>
</div>

如果您在普通版本中做了很多这样的事情,那么为自己定义一个 forEach 辅助函数是有意义的

function forEach(elems, fn){
  var len = elems.length,
      i = -1
  while(++i < len) {
    fn(elems[i])
  }
}

关于javascript - Vanilla JS 查找缺少子元素的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39024048/

相关文章:

javascript - 单击div时如何动态操作css以使div移动?

javascript - 监听 javascript 触摸事件但仍允许默认滚动行为

javascript - 如何使用 joi 验证用户名是否唯一?

javascript - window.setInterval() 调用的 jQuery .toggle() 不起作用

javascript - 图像点击时的 Jquery 缩放插件

javascript - 如何在 node.js 应用程序中正确安装 SSL?

javascript - 使用 JavaScript 控制特定电子邮件模式

javascript - 将 javascript 变量设置为等于 Storyline 变量?

javascript - fancybox 的解析 URL 功能失效?

Javascript 进度条没有更新 'on the fly' ,但是一旦进程完成就立即更新?