更新 我提出的代码是:
<section id="Test">
<header>Welcome</header>
<p>This is a test</p>
<div>Nothing here</div>
</section>
var element = document.getElementById("Test");
var elements = <HTMLCollection>element.getElementsByTagName("*");
我希望该集合包含<section>
,<header>
,<p>
和<div>
,上述代码只有<header>
,<p>
,和<div>
。无论如何我可以将<section>
本身添加到集合中吗?
问题在于我想将元素本身包含在元素集合中。我知道我可以使用outerHTML并将其放在临时容器中,然后从中获取所有元素,但我正在寻找一种更清洁的方式。
答案 0 :(得分:2)
您可以使用逗号分隔列表querySelectorAll
,其中第一项是元素本身。
此代码段使用您的HTML检索部分Test
及其子代:header
,p
和div
:
var elements= document.querySelectorAll('#Test, #Test *');
console.log(elements.length); //4
&#13;
<section id="Test">
<header>Welcome</header>
<p>This is a test</p>
<div>Nothing here</div>
</section>
&#13;