Как я могу извлечь все ссылки в элементе <main>, используя JavaScript - PullRequest
0 голосов
/ 16 октября 2019

Я пытаюсь создать массив, который содержит все ссылки в элементе main , используя javascript. Сейчас я не программист, но я решил, что попробую подойти к нему одним из двух способов:

a) Изолировать основной элемент (document.getElementsByTagName ("main"))и затем попытайтесь извлечь все href из этого объекта.

b) Создайте массив всех href на странице (document.links) и затем проверьте для каждого href, имеет ли он main какродительский узел.

До сих пор я не нашел решения ни для одного из подходов. Может кто-нибудь помочь мне с фрагментом кода, который создает массив со всеми href в main ? Заранее большое спасибо. Я уже часами разбирался сам xl

Пример HTML:

<main>
 <div id="content">
  <div class="classA">
   <a href="/pagePathA/"></a>
  </div>
  <div class="classB">
   <a href="/pagePathB/"></a>
  </div>
 </div>
</main>

1 Ответ

5 голосов
/ 16 октября 2019

использовать querySelectorAll

let hrefs = [...document.querySelectorAll('main a[href]')].map(({href}) => href);
console.log(hrefs);
<main>
  <a href="#1">1</a>
  <a href="#2">2</a>
  <div>
    <a href="#3">3</a>
  </div>
</main>

Если вы хотите только детей основного, а не всех потомков

let hrefs = [...document.querySelectorAll('main>a[href]')].map(({href}) => href);
console.log(hrefs);
<main>
  <a href="#1">1</a>
  <a href="#2">2</a>
  <div>
    <a href="#3">3</a>
  </div>
</main>
...