[英]how to select tags that are inside certain other tags
I want to select all the <"a"> tags on a page that are inside all the <"code"> tags on the page so I can count them, and I want to do this using JavaScript.. how can I do this? 我想选择页面上所有<“ code”>标记内的所有<“ a”>标记,以便对它们进行计数,并且我想使用JavaScript进行此操作。如何执行此操作?
I tried using document.getElementsByTagName("code").getElementsByTagName("a"); 我尝试使用document.getElementsByTagName(“ code”)。getElementsByTagName(“ a”); and document.getElementsByTagName("code").querySelectorAll("a");
和document.getElementsByTagName(“ code”)。querySelectorAll(“ a”);和 but it doesn t seem to work
但这似乎不起作用
document.getElementsByTagName("code").getElementsByTagName("a");
VM1278:1 Uncaught TypeError: document.getElementsByTagName(...).getElementsByTagName is not a function at :1:39 VM1278:1未被捕获的TypeError:document.getElementsByTagName(...)。getElementsByTagName不是位于:1:39的函数
You can use .querySelectorAll(selectors)
. 您可以使用
.querySelectorAll(selectors)
。
const matches = document.querySelectorAll('code a'); console.log(matches);
<code> <a>Test</a> <p>Other tag</p> <a>Example</a> </code>
You need to loop through the initial element search, since it returns an HTMLCollection of elements: 您需要遍历初始元素搜索,因为它会返回元素的HTMLCollection:
var elements = document.getElementsByTagName("code");
var all = [];
for(var i = 0; i < elements.length; i++){
var tempElements = elements[i].getElementsByTagName("a");
all = [...tempElements, ...all];
}
Try this instead: 尝试以下方法:
document.querySelectorAll('code a').length
The querySelector
and querySelectorAll
functions accept CSS-like DOM selectors and return a node or NodeList, respectively. querySelector
和querySelectorAll
函数接受类似CSS的DOM选择器,并分别返回节点或NodeList。
See: 看到:
您可以使用
document.querySelector("code > a");
you can do it like this: 您可以这样做:
var anchors = document.getElementById("thediv").getElementsByTagName("a"); alert("The Div has " + anchors.length + " links in it");
<div id="thediv"> <a href="#">link 1</a> <a href="#">link 2</a> <a href="#">link 3</a> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.