[url=http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#ID-536297177]NodeList[/url] (比如:document.getElementsByTagName('div'))转换成数组呢?[/b]
解决方案简单如下:
function nodeListToArray(nodes){
var arr, length;
try {
// works in every browser except IE
arr = [].slice.call(nodes);
return arr;
} catch(err){
// slower, but works in IE
arr = [];
length = nodes.length;
for(var i = 0; i < length; i++){
arr.push(nodes[i]);
}
return arr;
}
}
为什么 IE 中 NodeList 不可以使用 [].slice.call(nodes) 方法转换呢?
In Internet Explorer it throws an error that it can't run Array.prototype.slice.call(nodes) because a DOM NodeList is not a JavaScript object.