1

我想复制/克隆 2 个 xml dom 对象 - 一个到另一个。

对不起,如果它是重复的问题......我已经尝试过 在 JavaScript 中深度克隆对象的最有效方法是什么?

但是jquery抛出非法调用

编辑: XML 来自 ajax 调用

function FetchXMLData() {
                $.ajax({
                    url : "resources/data.xml",
                    data : requestVars,
                    dataType : 'xml',
                    success : function(xml) {
                        XMLParser(xml);
                        xmlOrig = $(xml).clone(); // I want to do something like this
                    },
                    error : function(xhr, err) {
                        ShowErrors(xhr, err);
                    }
                });
            }

编辑 2:现在,我正在使用 javascript cloneNode,它在 IE 和 FF 中完美运行,但在 Chrome 中失败。看到这个。如果有人知道解决方法,我将不胜感激。

4

1 回答 1

1

我知道这是一个老问题,但我也遇到了同样的问题,并解决了将其转换为文本并再次转换为 XML 的问题。

有:

(...)
success : function(xml) {
    XMLParser(xml);
    xmlOrig = cloneXML(xml);
},
(...)

// auxiliar function to clone XML
function cloneXML(xml) {
    var xml_text = (new XMLSerializer()).serializeToString(xml);
    return $.parseXML(xml_text); // return XML document
}

此解决方法适用于 Firefox 49.0.2 和 Chrome 54.0.2840.71。

如果有人知道更好的方法,请回答。

于 2016-10-27T21:17:08.670 回答