如何选择某些其他标签内的标签

时间:2019-09-06 21:29:42

标签: javascript

我想选择页面上所有<“ 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

5 个答案:

答案 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

querySelectorquerySelectorAll函数接受类似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&nbsp;</div>\n</div>"
  }
],
var anchors = document.getElementById("thediv").getElementsByTagName("a");
alert("The Div has " + anchors.length + " links in it");