2010-11-22 63 views
0

我正在使用jQuery將XML元素添加到內存中的XML文檔中。如何消除在XML文檔中使用jQuery.appendTo時的默認名稱空間

var newElem = xmlDoc.find("newElem"); 
if (newElem.length == 0) 
    newElem = $("<newElem/>").appendTo(xmlDoc); 

我最終得到的是:

<newElem xmlns="http://www.w3.org/1999/xhtml"></newElem> 

這個XML被髮送到服務器的AJAX調用,並在dom4j的使用默認的命名空間是一種痛苦。有什麼辦法可以停止添加默認的命名空間嗎?

我正在使用Firefox。這可能是一個瀏覽器的具體事情?

回答

0

這可能是jQuery沒有打算支持的東西,因爲它只是使用createElement而不是createElementNS。最終效果是它總是使用文檔(HTML)名稱空間。您可能要直接使用document.createElementNS

+0

原來使用createElement工作得很好。關鍵是使用它而不是jQuery的內部創建例程 – 2010-11-23 20:16:49

0

不能使用$("<newElem/>")語法 - 它會根據 根目錄創建一個新的xml dooc,因此會創建xmlns。

您需要使用非jQuery的純JavaScript的的createElement()方法:

var el = xmlDoc.createElement(childname); // Create non-jq element 
el = $(el);        // jQuery-ize it 
el.appendTo(xmlDoc);      // Append using jq object 

而且,雖然我在這,如果你追加到這不是一個jQuery的XML節點文件,使用

var el = parent.context.createElement(childname); 
相關問題