Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript IE-JQuery将子节点附加到XML中,每个循环$_Javascript_Jquery_Xml_Internet Explorer - Fatal编程技术网

Javascript IE-JQuery将子节点附加到XML中,每个循环$

Javascript IE-JQuery将子节点附加到XML中,每个循环$,javascript,jquery,xml,internet-explorer,Javascript,Jquery,Xml,Internet Explorer,IE没有正确地将子节点附加到已解析的XML字符串中,或者没有识别出我试图将子节点附加到已解析的XML字符串中,我遇到了一个问题。Chrome和Firefox理解我的意图。我不知道这是范围问题还是IE和XML的行为 var dataContainers = $('[data-container]'); var containerXML = $.parseXML('<inlineSubmission><userid>'+userID+'</userid><g

IE没有正确地将子节点附加到已解析的XML字符串中,或者没有识别出我试图将子节点附加到已解析的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)
var-dataContainers=$(“[datacontainer]”);
var containerXML=$.parseXML(“”+userID+“”+GUID+“”);
$.each(数据容器、函数(键、值){
var containerID=$(value).attr('id'),
isVisible=$(值).is(':visible'),
xmlFragment;
xmlFragment=''+containerID+''+isVisible+'';
$(containerXML).find('containers').append(xmlFragment);
});
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>
5555522222-222-2-22-222HeroContainerTrueUndefinedContactInfoNoneUndefinedContentContainerTrueContainerTrueContainerTrueCountAccessContainerTruePromotionContainerTrueContactContainerTrue
IE返回原始变量值时:

<inlineSubmission><userid>55555</userid><guid>22222-222-2-22-222</guid><contentField><![CDATA[FlexXML]]></contentField><content><containers /></content></inlineSubmission>
5555522222-222-2-22-222
任何帮助都将不胜感激

尝试用
$(containerXML.documentElement)
替换
$(containerXML)


$(containerXML)
返回
#文档
,具有
文档
上下文
,例如

$(文档)。追加(abc

不会将
abc

附加到
元素,并且可能返回错误:

TypeError:无法读取null的属性“createDocumentFragment”


$(containerXML.documentElement)
返回
元素,具有
内联提交的
上下文

var userID=“abc”,GUID=123,containerID=456,isVisible=true;
var xmlFragment=''
+集装箱运输+“”
+isVisible+'';
var containerXML=$.parseXML(“”
+用户ID+“”
+GUID+“”
+''
+'');
console.log($(containerXML)
,$(containerXML.documentElement).find(“containers”);
$(containerXML.documentElement).find(“containers”).append(xmlFragment);
$(“body”).append($(containerXML.documentElement))

终于让它工作了。谢谢你的回答!他们给了我正确的前进方向:

var containerXML = $('<inlineSubmission><userid>'+userID+'</userid><guid>'+GUID+'</guid><contentField>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);
});

var parsedXML = $.parseXML(containerXML[0].outerHTML);
console.log(parsedXML)
var containerXML=$(''+userID+''+GUID+'FlexXML');
$.each(数据容器、函数(键、值){
var containerID=$(value).attr('id'),
isVisible=$(值).is(':visible'),
xmlFragment;
xmlFragment=$(''+containerID+''+isVisible+'')
$(containerXML).find('containers').append(xmlFragment);
});
var parsedXML=$.parseXML(containerXML[0].outerHTML);
console.log(parsedXML)

console.log($(containerXML).find('containers').length)
在假设追加是问题之前。此外,您似乎正在将HTML追加到XML文档中。我可能不喜欢那样。