Матиас Кестенхольц:
getElementsByTagName возвращает объект NodeList, который похож на массив, но не является массивом, это живой список.
var test = document.getElementsByTagName('a');
alert(test.length); // n
document.body.appendChild(document.createElement('a'));
alert(test.length); // n + 1