2010-05-26 41 views
0

這可能只是一個語法錯誤,但我試圖從頭開始創建一個Document對象,從document.implementation.createDocument()開始,然後使用jQuery的append()方法添加元素。但它不是追加:空的XML元素上的jquery append()方法

var myDoc = document.implementation.createDocument("", 'stuff', null); 

$("stuff",myDoc).attr("test","tested"); 

$("stuff",myDoc).append("<test>A</test>"); 
$("<test>B</test>").appendTo("stuff",soapEnv); 

var s = new XMLSerializer(); 
alert(s.serializeToString(soapEnv)); 

這應該輸出:

<stuff test="tested"> 
    <test>A</test> 
    <test>B</test> 
</stuff> 

而是將其輸出:

<stuff test="tested" /> 

所以選擇似乎是工作,只是沒有方法。我唯一的猜測是該方法沒有考慮到元素是空的(<stuff />),直到他們有了孩子。但這只是一個猜測。

回答

1

您不能使用jquery構建非HTML節點。這意味着$('<test>X</test>')不會工作,但$('<span>X</span>')會。 (您可以使用jQuery來讀取XML文檔,並尋找像$('test')這樣的東西,但構建它們是另一回事。)這是由於jQuery如何在內部創建這些元素。

編輯

這是支持我的要求的文檔:http://api.jquery.com/jQuery/#jQuery2

HTML的字符串動態創建。 請注意,這解析HTML,而不是XML。

+0

附註:另外一個註釋/編輯:我相信你實際上可以在其中一個瀏覽器中獲得這項工作(我不記得是哪一個),只是不是全部。 – Funka 2010-05-26 05:29:57

+0

無賴。但是,謝謝你的確切答案。 – Anthony 2010-05-26 05:51:45