Crescent'in söylediklerine eklemek için,
İstediğiniz tek işlevse, NodeList.prototype.map = Array.prototype.map gibi bir şey yapabilirsiniz.
Bunu yapma! Çalışması hiç garanti değil.
Hiçbir JavaScript veya DOM / BOM standardı, NodeList
yapıcı-işlevin bir global / window
özellik olarak var olduğunu veya NodeList
tarafından döndürülen querySelectorAll
işlevin ondan miras alınacağını veya prototipinin yazılabilir olduğunu veya işlevin Array.prototype.map
aslında bir NodeList üzerinde çalışacağını belirtmez .
Bir NodeList'in bir 'ana bilgisayar nesnesi' olmasına izin verilir (ve IE'de ve bazı eski tarayıcılarda birdir). Array
Yöntemler sayısal ve ortaya herhangi JavaScript 'yerli nesne' üzerinde çalışmasına izin verilmesi olarak tanımlanan length
özelliklere, ancak ana nesneler üzerinde çalışmaya zorunlu değildir (ve IE, sevmezler).
DOM listelerinde tüm dizi yöntemlerini (tümü, yalnızca StaticNodeList değil) almamanız can sıkıcıdır, ancak bunun güvenilir bir yolu yoktur. Geri aldığınız her DOM listesini bir Diziye manuel olarak dönüştürmeniz gerekir:
Array.fromList= function(list) {
var array= new Array(list.length);
for (var i= 0, n= list.length; i<n; i++)
array[i]= list[i];
return array;
};
Array.fromList(element.childNodes).forEach(function() {
...
});