jquery 中重复的 xml dom 对象

发布于 2024-12-10 00:47:39 字数 1047 浏览 0 评论 0原文

我想复制/克隆 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 中失败。请参阅此内容。如果有人知道解决方法,我将不胜感激。

I want to copy/clone 2 xml dom objects - one into another.

Sorry if it is duplicate question... I've already tried
What is the most efficient way to deep clone an object in JavaScript?

But jquery throws Illegal invocation

EDIT: XML comes from an ajax call

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);
                    }
                });
            }

EDIT 2: Now, I'm using javascript cloneNode, that works perfectly in IE and FF, but fails in Chrome. See this. If anyone knows a workaround I would be grateful.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

感情废物 2024-12-17 00:47:39

我知道这是一个老问题,但我也遇到了同样的问题,并解决了它,将其转换为文本,然后再次转换为 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 中对我有效。

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

I know it's an old question, but i just had this same problem, and solved it converting it to text and again to XML.

Having:

(...)
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
}

This workaround worked for me in Firefox 49.0.2 and Chrome 54.0.2840.71.

If anyone know a better way, please answer.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文