TypeScript或JS-如何选择元素及其所有子元素到HTMLCollection中?

时间:2015-03-11 15:22:13

标签: javascript typescript htmlcollection

更新 我提出的代码是:

<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并将其放在临时容器中,然后从中获取所有元素,但我正在寻找一种更清洁的方式。

1 个答案:

答案 0 :(得分:2)

您可以使用逗号分隔列表querySelectorAll,其中第一项是元素本身。

此代码段使用您的HTML检索部分Test及其子代:headerpdiv

&#13;
&#13;
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;
&#13;
&#13;