The "problem" is that .getElementsByTagName()
returns a Live NodeList. Hence, when you remove the head (first) entry, the tail fills up and moves to the left, so to speak.
Its not a real Javascript Array where this would work as expected. To create such a frozen Array we can go like
var element = Array.prototype.slice.call(document.getElementsByTagName("label"),0);
for (var index = 0, len = element.length; index < len; index++) {
element[index].parentNode.removeChild(element[index]);
}