TypeScript или JS- Как выбрать элемент и все его дочерние элементы в 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> себя в коллекцию?

Проблема в том, что я хочу включить сам элемент в коллекцию элементов. Я знаю, что могу использовать externalHTML и поместить его в временный контейнер, а затем получить из него весь элемент, но я ищу более чистый путь.

1 ответ

Решение

Вы можете использовать список через запятую с querySelectorAll где первым элементом является сам элемент.

Этот фрагмент использует ваш HTML для получения раздела Test и его дети: header, p, а также div:

var elements= document.querySelectorAll('#Test, #Test *');
console.log(elements.length); //4
<section id="Test">
   <header>Welcome</header>
   <p>This is a test</p>
   <div>Nothing here</div>
</section>

Другие вопросы по тегам