我遇到了 IE 无法正确附加或识别我将子节点附加到解析的 XML 字符串的尝试的问题。 Chrome 和 Firefox 明白我正在尝试做什么。我不知道这是范围问题还是 IE 和 XML 的行为。
var dataContainers = $('[data-container]');
var containerXML = $.parseXML('<inlineSubmission><userid>'+userID+'</userid><guid>'+GUID+'</guid><contentField><![CDATA[FlexXML]]></contentField><content><containers></containers></content></inlineSubmission>');
$.each(dataContainers,function (key,value) {
var containerID = $(value).attr('id'),
isVisible = $(value).is(':visible'),
xmlFragment;
xmlFragment = '<container><name>'+containerID+'</name><visible>'+isVisible+'</visible></container>';
$(containerXML).find('containers').append(xmlFragment);
});
console.log(containerXML)
Chrome 和 Firefox 均正确返回:
<inlineSubmission><userid>55555</userid><guid>22222-222-2-22-222</guid><contentField><![CDATA[FlexXML]]></contentField><content><containers><container><name>heroContainer</name><visible>true</visible><bgcolor>undefined</bgcolor><textcolor>undefined</textcolor><subitem><name>contactInfo</name><visible>none</visible><location>undefined</location></subitem></container><container><name>contentContainer</name><visible>true</visible></container><container><name>cnmContainer</name><visible>true</visible></container><container><name>accountAccessContainer</name><visible>true</visible></container><container><name>promoContainer</name><visible>true</visible></container><container><name>contactContainer</name><visible>true</visible></container></containers></content></inlineSubmission>
当 IE 返回原始变量值时:
<inlineSubmission><userid>55555</userid><guid>22222-222-2-22-222</guid><contentField><![CDATA[FlexXML]]></contentField><content><containers /></content></inlineSubmission>
任何帮助,将不胜感激!
尝试替换$(containerXML.documentElement)
for $(containerXML)
.
$(containerXML)
回报#document
,有context
of document
, e.g.;
$(document).append("<p>abc</p>")
不会追加<p>abc</p>
to <html>
or <body>
elements ,并且可能返回错误:
TypeError: Cannot read property 'createDocumentFragment' of null
.
$(containerXML.documentElement)
回报<inlinesubmission>
元素 , 具有context
of inlinesubmission
var userID = "abc", GUID = 123, containerID = 456, isVisible = true;
var xmlFragment = '<container><name>'
+containerID+'</name><visible>'
+isVisible+'</visible></container>';
var containerXML = $.parseXML('<inlineSubmission><userid>'
+userID+'</userid><guid>'
+GUID+'</guid><contentField><![CDATA[FlexXML]]>'
+'</contentField><content><containers></containers>'
+'</content></inlineSubmission>');
console.log($(containerXML)
, $(containerXML.documentElement).find("containers"));
$(containerXML.documentElement).find("containers").append(xmlFragment);
$("body").append($(containerXML.documentElement));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)