我有一个接受HTML节点列表的Javascript函数,但它需要一个Javascript数组(它在该数组上运行一些array方法),我想向它提供返回DOM节点列表的Document.getElementsByTagName
的输出。
最初,我想使用一些简单的东西,比如:
Array.prototype.slice.call(list,0)
这在所有浏览器中都工作得很好,当然Internet Explorer除外,它返回错误"JScript object except“,因为显然Document.getElement*
方法返回的DOM节点列表不足以作为函数调用的目标JScript对象。
注意:我不介意编写I特定代码,但我不允许使用任何Javascript库,例如JQuery,因为我正在编写一个要嵌入到第三方网站的小工具,并且我不能加载会给客户端造成冲突的外部库。
我最后的努力是遍历DOM节点列表并自己创建一个数组,但是有没有更好的方法呢?
发布于 2015-12-22 16:14:42
使用这个简单的技巧
<Your array> = [].map.call(<Your dom array>, function(el) {
return el;
})
发布于 2010-04-29 14:11:44
var arr = new Array();
var x= ... get your nodes;
for (i=0;i<x.length;i++)
{
if (x.item(i).nodeType==1)
{
arr.push(x.item(i));
}
}
这应该是可行的,跨浏览器,并得到所有的“元素”节点。
https://stackoverflow.com/questions/2735067
复制相似问题