0

在我的一个 .js 文件中,我刚刚注意到我在标题中提到的 2 个元素之间的奇怪交互。

我将首先提供示例代码,然后我将更详细地解决这个问题。

var xmlClone = xmlCreateDocFromString(this.xmlTemplate);
$(conf.current[currentTab]).find('#' + refID).after($(xmlClone).children());

xmlCreateDocFromString 的定义在哪里:

function xmlCreateDocFromString(str)
{
var xmlDoc;

if ( window.DOMParser )
{
    var parser = new DOMParser();
    xmlDoc = parser.parseFromString(str, "text/xml");
}
else
{
    xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async = false;
    xmlDoc.loadXML(str);
}

return xmlDoc;

}

我正在 Chrome 上对此进行测试,所以请注意其中的“if”块。

问题是,在第一个代码块的第一行之后,xmlClone 确实具有 this.xmlTemplate 的内容,但是在使用“.after()”JQuery 函数(或 .before 或 .append)之后,xmlClone 只是变为空xmlDoc 这真的搞砸了我的代码。

所以,我需要的是一种附加 xmlClone 的内容并同时将它们保存在 xmlClone 中的方法(也就是 append 通常对 JS 对象执行的操作)。

如果您需要任何其他信息,请询问,我会尽快回复

4

1 回答 1

1

jQuery 倾向于移动对象而不是复制它们,因为这通常是人们想要做的。

我敢肯定还有其他方法,但是您可以在附加之前克隆对象...

$(conf.current[currentTab]).find('#' + refID).after($(xmlClone).clone().children());
于 2013-04-25T13:03:04.170 回答