我正在实施ECMA-357附件A中描述的所有可选E4X功能,而我在实现domNodeList(§A.1.2和§A.2.2)时遇到了问题。我如何创建自己的NodeList对象?
即使我创建一个新的XMLDocument并在XMLList中附加节点的每个domNode()表示,我仍然看不到如何创建包含所有内容的NodeList,因为通常会排除注释和处理指令。
答案 0 :(得分: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;
}