我一直在使用 jQuery 创建 HTML 元素,然后将它们添加到 XML 文档中,如下所示:
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>
这是 JSFiddle 链接。不幸的是,我有两个问题。
当我尝试创建一个名称为 like 的元素时
child
,它正确地创建了一个带有 tagName 的元素child
。但是,如果我使用 nameimage
,出于某种原因 jQuery 认为我想要创建一个img
元素。如何阻止 jQuery 这样做?所有子元素都会自动添加属性
xmlns="http://www.w3.org/1999/xhtml"
,即使我生成的文档不是 XHTML 文档。我该如何阻止这种情况发生?
更新:
图像 tagName 问题似乎是 DOM 的问题,而不是 jQuery 的问题,如下代码所示:
var el = document.createElement("image");
$("#output").append(el.tagName); // Outputs "IMG"