2013-04-25 52 views
0

在我的一個.js文件中,我剛剛注意到我在標題中提到的兩個元素之間的奇怪交互。XMLDocument和JQuery之間的交互.append()

我第一次提供示例代碼,之後我將更詳細地解決該問題。

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所以纔要注意 「如果」 塊在那裏。

問題是,在第一個代碼塊的第一行之後,xmlClone確實具有this.xmlTemplate的內容,但在使用「.after()」JQuery函數(或.before或.append)之後xmlClone只是變成空的xmlDoc,這真的搞砸了我的代碼。

所以,我需要的是一種方法來追加xmlClone的內容並同時將它們保存在xmlClone中(也就是通常爲JS對象附加的東西)。

如果您需要任何額外的信息,請問,我會回答儘快

回答

1

jQuery的趨向於移動的物體,而不是複製它們,因爲它通常是人們期待的事情。

我肯定還有其他的方法,但你可以追加之前克隆對象...

$(conf.current[currentTab]).find('#' + refID).after($(xmlClone).clone().children()); 
+0

這是很奇怪的,因爲追加不「空」 JS對象,所以我就來實際期望元素被複制而不是被移動。 克隆方法確實可行,但我已經調整了一下我的程序,所以這個問題的解決方法已經變成了更軼事。不管怎麼說,還是要謝謝你 :) – 2013-04-25 14:41:07

相關問題