Для любого документа, сделаем следующее:
var aList1 = document.getElementsByTagName('a'),
var aList2 = document.querySelectorAll('a');
document.body.appendChild(document.createElement('a'));
alert(aList1.length - aList2.length);
Каков будет результат? Почему?
Решение
Решение
Результатом будет 1, потому что getElementsByTagName - живая коллекция, которая автоматически дополнилась новым элементом a и ее длина увеличилась на 1.
А вот querySelector, наоборот, возвращает статичный список узлов. Он ссылается на те же самые элементы, что бы не происходило с документом. Вот поэтому его длина и остается неизменной.
#310