我遇到了一个问题,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>
希望能得到您的帮助!
console.log($(containerXML).find('containers').length)
。 - Kevin B