javascript - 通过 GetElementsbyClass 内的标签在 GetElementbyID 嵌套的 dom 元素内获取元素

标签 javascript jquery html

我有这样的 html 输出:

<div id="parent">
  <ul id="list">
    <li class="item">
      <a href="picture1.jpg">
        <img src="picture1.jpg">
      </a>
    </li>
    <li class="item active">
      <a href="picture1.jpg" class="OUR-TARGET">
        <img src="picture1.jpg">
      </a>
    </li>
    <li class="item">
      <a href="picture1.jpg">
        <img src="picture1.jpg">
      </a>
    </li>
  </ul>
</div>

我想获取所有带有标签“a”的元素,这些元素位于类名为“active”的元素内,也包含在 id 为“parent”的元素内。

我目前正在使用 document.getElementById('parent').getElementsByTagName('a') 但我不想要所有不活动的 a 标签,只想要那些通过 class= 的嵌套元素激活的标签积极的。谢谢!

最佳答案

路漫漫其修远兮

首先,只获取active类的元素,然后遍历这个元素,获取子a元素。这是一个示例(我为我们的目标提供了 OUR-TARGET 类,因此您最终可以在控制台中看到它并确定它确实是我们的目标):

var activeLis = document.getElementById('parent').getElementsByClassName('active');
for (var i = 0; i < activeLis.length; i++) {
  console.log(activeLis[i].getElementsByTagName('a')[0]);
}
<div id="parent">
  <ul id="list">
    <li class="item">
      <a href="picture1.jpg">
        <img src="picture1.jpg">
      </a>
    </li>
    <li class="item active">
      <a href="picture1.jpg" class="OUR-TARGET">
        <img src="picture1.jpg">
      </a>
    </li>
    <li class="item">
      <a href="picture1.jpg">
        <img src="picture1.jpg">
      </a>
    </li>
  </ul>
</div>

捷径

您可以简单地使用 "#parent .active a" 选择器用于 querySelectorAll 方法:

console.log(document.querySelectorAll("#parent .active a")[0]);
<div id="parent">
  <ul id="list">
    <li class="item">
      <a href="picture1.jpg">
        <img src="picture1.jpg">
      </a>
    </li>
    <li class="item active">
      <a href="picture1.jpg" class="OUR-TARGET">
        <img src="picture1.jpg">
      </a>
    </li>
    <li class="item">
      <a href="picture1.jpg">
        <img src="picture1.jpg">
      </a>
    </li>
  </ul>
</div>

关于javascript - 通过 GetElementsbyClass 内的标签在 GetElementbyID 嵌套的 dom 元素内获取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46595738/

相关文章:

javascript - 谷歌地图 api place_changed 事件未触发

javascript - 如何选择所有输入并按 id 或 class 选择单个或多个 div 内的元素

javascript - Spring MVC Ajax请求刷新动态表

javascript - Bootstrap侧边栏和页面内容合并

javascript - 如何上传带有某些字段的图像?

javascript - Chrome Mobile 上 Service Worker 的 HTML5 通知无法正常工作

javascript - DOM 遍历查找父项的兄弟项

jQuery event.which 在 IE 中不起作用

jquery - HTML5 窗口 Pane 代码

javascript - 位置 :Sticky Sidebar in Internet Explorer