将childNodes转换为下划线数组的最佳方法

时间:2013-03-07 01:59:15

标签: javascript arrays underscore.js

我想将Element的childNodes转换为javascript中的数组。

如何将childNodes转换为数组?有什么好主意吗?

2 个答案:

答案 0 :(得分:1)

不需要下划线,我想到了这一点:[].concat.apply([],nodelist)

然而,它不适用于所有浏览器,因为较旧的浏览器需要数组而不是数组类对象,所以我只是使用它:

function toarray(obj) {
    var l = obj.length, i, out = [];
    for(i=0; i<l; i++) out[i] = obj[i];
    return out;
}

这可能是最简单的方式,也是最兼容的方式。

答案 1 :(得分:1)

我用_.toArray()

做了这个

html部分:

<div id="testdiv"><div id="t1"></div><div id="t2"></div><div id="t3"></div><div id="t4"></div><div id="t5"></div></div>

JS:

var td = document.getElementById("testdiv");
console.log(_.toArray(td.childNodes));