创建DOM NodeList

Eli*_*rey 12 javascript e4x dom

我正在实现ECMA-357附件A中描述的所有可选E4X功能,而我在实现domNodeList(§A.1.2和§A.2.2)时遇到了问题.我如何创建自己的NodeList对象?

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

Eli*_*rey 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;
}
Run Code Online (Sandbox Code Playgroud)

  • 这将从 dom 中删除添加的节点 (3认同)