我想选择页面上所有<“ code”>标记内的所有<“ a”>标记,以便对它们进行计数,并且我想使用JavaScript进行此操作。我这样做吗?
我尝试使用document.getElementsByTagName(“ code”)。getElementsByTagName(“ a”);和document.getElementsByTagName(“ code”)。querySelectorAll(“ a”);和但这似乎不起作用
document.getElementsByTagName("code").getElementsByTagName("a");
VM1278:1未捕获的TypeError:document.getElementsByTagName(...)。getElementsByTagName不是函数 在:1:39
答案 0 :(得分:2)
您可以使用.querySelectorAll(selectors)
。
const matches = document.querySelectorAll('code a');
console.log(matches);
<code>
<a>Test</a>
<p>Other tag</p>
<a>Example</a>
</code>
答案 1 :(得分:0)
您需要遍历初始元素搜索,因为它会返回元素的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];
}
答案 2 :(得分:0)
尝试以下方法:
document.querySelectorAll('code a').length
querySelector
和querySelectorAll
函数接受类似CSS的DOM选择器,并分别返回节点或NodeList。
请参阅:
答案 3 :(得分:0)
您可以使用
document.querySelector("code > a");
答案 4 :(得分:0)
您可以这样做:
"attachments": [
{
"contentType": "text/html",
"content": "<div><div><span itemscope=\"\" itemtype=\"http://schema.skype.com/Mention\"
itemid=\"0\">{Name of the bot}</span> Command </div>\n</div>"
}
],
var anchors = document.getElementById("thediv").getElementsByTagName("a");
alert("The Div has " + anchors.length + " links in it");