首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Javascript中将DOM节点列表转换为数组?

如何在Javascript中将DOM节点列表转换为数组?
EN

Stack Overflow用户
提问于 2010-04-29 13:59:39
回答 2查看 114.5K关注 0票数 113

我有一个接受HTML节点列表的Javascript函数,但它需要一个Javascript数组(它在该数组上运行一些array方法),我想向它提供返回DOM节点列表的Document.getElementsByTagName的输出。

最初,我想使用一些简单的东西,比如:

代码语言:javascript
复制
Array.prototype.slice.call(list,0)

这在所有浏览器中都工作得很好,当然Internet Explorer除外,它返回错误"JScript object except“,因为显然Document.getElement*方法返回的DOM节点列表不足以作为函数调用的目标JScript对象。

注意:我不介意编写I特定代码,但我不允许使用任何Javascript库,例如JQuery,因为我正在编写一个要嵌入到第三方网站的小工具,并且我不能加载会给客户端造成冲突的外部库。

我最后的努力是遍历DOM节点列表并自己创建一个数组,但是有没有更好的方法呢?

EN

回答 2

Stack Overflow用户

发布于 2015-12-22 16:14:42

使用这个简单的技巧

代码语言:javascript
复制
<Your array> = [].map.call(<Your dom array>, function(el) {
    return el;
})
票数 8
EN

Stack Overflow用户

发布于 2010-04-29 14:11:44

代码语言:javascript
复制
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));
  }
}

这应该是可行的,跨浏览器,并得到所有的“元素”节点。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2735067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档