我有这样的html输出:
sbt-editsource
我想通过标记' a'来获取所有元素。属于具有类名'活跃'的元素。以及id' parent'。
我目前正在使用
<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>
但我不想要所有不活动的标签,只是通过class = active的嵌套元素激活的标签。谢谢!
答案 0 :(得分:1)
首先,仅使用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]);
}
&#13;
<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>
&#13;
您只需使用"#parent .active a"
方法querySelectorAll
方法:
console.log(document.querySelectorAll("#parent .active a")[0]);
&#13;
<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>
&#13;