複数の要素をライブに取得するコレクションは ( A )、CSSセレクタで複数を静的に取得するのは ( B ) である。
解答
A: getElementsByClassName
B: querySelectorAll
解説
getElementsByClassNameは**HTMLCollection(ライブ)を返し、DOMの変化が即時反映される。querySelectorAllはNodeList(静的)**であり、取得時点のスナップショットが返る。
使用例(サンプルコード)
[ html ]
<ul id="list"><li class="item">A</li></ul>
<script>
const live = document.getElementsByClassName('item'); // (A)
const staticNodes = document.querySelectorAll('.item'); // (B)
console.log(live.length, staticNodes.length); // 1, 1
// 追加
document.getElementById('list').insertAdjacentHTML('beforeend','<li class="item">B</li>');
console.log(live.length, staticNodes.length); // 2, 1(ライブ vs 静的)
</script>