Javascript jQuery为图像标记创建了不正确的元素
我一直在使用jQuery创建HTML元素,然后将它们添加到XML文档中,如下所示:Javascript jQuery为图像标记创建了不正确的元素,javascript,jquery,xml,Javascript,Jquery,Xml,我一直在使用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>"
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);
image
是img
的同义词document.createElement('image')
实际上创建了一个img
元素,就像我在中解释的那样
尽管如此,所有的希望都没有失去。将HTML/XML字符串传递给jQuery
时,将解析元素的
因为您已经在第一步中创建了一个XML文档对象,所以我相信
var imageEl = $("<image />", doc[0]);
您是否尝试像var imageEl=$(“”)那样添加它@德里克:没有效果。问题似乎出在
createElement
上,而不是jQuery上。这一切都是正确的image
是HTML中img
的别名。尝试将所有者文档显式设置为XML文档:var imageEl=$(“”,doc)
(我真的不知道这是否管用,不过这是我的猜测)。在Firefox中,它显示图像,但IE显示img
。下面是最后一个解决了这两个问题的JSFIDLE:另外,doc[0]
是不必要的。只需传递jQuerydoc
对象就足够了。@cdmckay:是的,但我希望它与第二个示例保持一致。
var el = document.createElement("image");
$("#output").append(el.tagName); // Outputs "IMG"
var imageEl = $("<image />", doc[0]);
var imgeEl = $(doc[0].createElement('image'));