dom_dom0300_006

タグ名で複数要素を取得するには ( A )、クラス名で複数要素を取得するには ( B ) を使い、どちらも反復可能なコレクションを返す。

解答

A: getElementsByTagName
B: getElementsByClassName

解説

どちらもHTMLCollectionを返す。配列風だが配列ではないため、Array.from()などで配列化して高階関数を使うのが定石。

使用例(サンプルコード)

[ html ]

<ul>
  <li class="i">A</li><li class="i">B</li>
</ul>
<script>
  const byTag = document.getElementsByTagName('li'); // (A)
  const byClass = document.getElementsByClassName('i'); // (B)
  console.log(Array.from(byTag).map(li=>li.textContent)); // ["A","B"]
</script>