2009-11-21 129 views
11

我正在实现ECMA-357附录A中描述的所有可选E4X特性,并且在实现domNodeList(§A.1.2和§A.2.2)时遇到困难。我将如何创建我自己的NodeList对象?创建DOM节点列表

即使我创建了一个新的XMLDocument并在XMLList中附加了节点的每个domNode()表示,但我仍然没有看到如何创建一个包含所有内容的NodeList,因为注释和处理指令通常被排除。

+0

这个问题的背景是什么?你在写什么? – 2009-11-21 21:15:59

+2

瑞恩,你没有看到domNodeList?我也清楚地说明它在ECMA-357中的定义。 – 2009-11-21 21:35:59

+0

为什么这是CW? – 2009-11-21 22:01:41

回答

16

我想到我可以使用文档片段的childNodes属性来创建NodeList。这是我的解决方案:

XML.prototype.function::domNodeList = function() { 
    var fragment = document.createDocumentFragment(), 
    len = this.length(), 
    i = 0; 
    for (; i < len; i++) { 
     fragment.appendChild(this[i].domNode()); 
    } 
    return fragment.childNodes; 
} 
+1

这会从dom中删除添加的节点 – Pancho 2014-11-13 13:01:33