// turning live collection into static array fixes this

Array.slice(document.getElementsByTagName('div')).forEach(function(el) {
   el.parentNode.removeChild(el);
});

Where supported, though top level generics such as Array.slice are not
standard, so:

var divList = document.getElementsByTagName('div');
Array.prototype.slice.call( divList );

Elsewhere:
https://mail.mozilla.org/pipermail/es-discuss/2009-December/010241.html
Ok. I understand the "Array.slice" now. Sorry.
"Array.prototype.slice.call( divList );" is not standard either. In ECMAScript 5, it is stated that : "The slice function is intentionally generic; it does not require that its this value be an Array object. Therefore it can be transferred to other kinds of objects for use as a method. Whether the slice function can be applied successfully to a host object is implementation-dependent."

Somehow, the reason why I am proposing that HTMLCollections inherit from Array.prototype is to get rid of the "implementation-dependant" for HTMLCollections which are clearly very good candidates for methods such as forEach, filter (returns a new array (which would be a convinient way to create static copies in one call)) or some/every.

David

Reply via email to