nastya97core,
Есть еще важное различие между методами .getElementsByClassName() и .querySelectorAll(), первый возвращает HTMLCollection, а второй NodeList. HTMLCollection и ее производные (HTMLOptionsCollection, HTMLFormControlsCollection) это так называемая живая коллекция, она автоматически обновляется, когда документ изменяется, NodeList так не умеет. Также возвращается методом .getElementsByTagName(), и некоторыми свойствами, например, .children, document.forms и
другими.
var liveList = document.getElementsByClassName('test');
// liveList.length: 0
element1.classList.add('test');
element2.classList.add('test');
// liveList.length: 2
element2.remove();
// liveList.length: 1