我已經使用jQuery創建HTML元素,然後將它們添加到一個XML文檔,例如:jQuery的創建用於圖像標記不正確元件
var doc = $($.parseXML('<?xml version="1.0" encoding="UTF-8"?><root/>'));
var docRoot = doc.find("root");
var childEl = $("<child>");
docRoot.append(childEl);
var imageEl = $("<image>");
docRoot.append(imageEl);
var xmlString = doc.context.xml ||
new XMLSerializer().serializeToString(doc.context);
$("#xml").text(xmlString);
這是輸出(在Chrome 24):
<?xml version="1.0" encoding="UTF-8"?>
<root>
<child xmlns="http://www.w3.org/1999/xhtml"></child>
<img xmlns="http://www.w3.org/1999/xhtml" />
</root>
Here's the JSFiddle link.不幸的是,我有兩個問題。
當我嘗試創建一個像
child
名稱的元素,它正確地創建與標記名child
一個元素。但是,如果我使用名稱image
,出於某種原因,jQuery認爲我想製作一個img
元素。如何阻止jQuery執行此操作?即使生成的文檔不是XHTML文檔,所有子元素都會自動添加屬性
xmlns="http://www.w3.org/1999/xhtml"
。我如何阻止這種情況發生?
更新:
圖像的tagName問題似乎是與DOM,jQuery的不是一個問題,因爲this code表明:
var el = document.createElement("image");
$("#output").append(el.tagName); // Outputs "IMG"
你嘗試將它像變種imageEl = $( 「 」); ? –
Derek
2013-02-20 21:27:09
@Derek:沒有效果。問題似乎與'createElement'而不是jQuery。 – cdmckay 2013-02-20 21:28:24
這一切都正確。 'image'是HTML中'img'的別名。嘗試明確地將所有者文檔設置爲XML文檔:'var imageEl = $(「 」,doc);'(我真的不知道這是否有效,這將是我的猜測)。 –
2013-02-20 21:30:09