IE - JQuery 在 $.each 循环中将子节点附加到 XML [英] IE - JQuery appending child nodes to XML in $.each loop

查看:39
本文介绍了IE - JQuery 在 $.each 循环中将子节点附加到 XML的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我遇到了 IE 无法正确附加或识别我尝试将子节点附加到已解析的 XML 字符串中的问题.Chrome 和 Firefox 了解我正在尝试做什么.我不知道这是范围问题还是 IE 和 XML 的行为.

I'm having a problem with IE not correctly appending or recognizing my attempts to append child nodes into a parsed XML string. Chrome and Firefox understand what I'm attempting to do. I don't know if this is a scope issue or a behavior of IE and 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 都正确返回:

Chrome and Firefox both correctly return:

<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 返回原始变量值时:

While IE is returning the original variable value:

<inlineSubmission><userid>55555</userid><guid>22222-222-2-22-222</guid><contentField><![CDATA[FlexXML]]></contentField><content><containers /></content></inlineSubmission>

任何帮助将不胜感激!

推荐答案

终于搞定了.感谢您的回答!他们给了我正确的前进方向:

Finally got it working. Thanks for the answers! They gave me the right direction to move in:

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)

这篇关于IE - JQuery 在 $.each 循环中将子节点附加到 XML的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆