0

一项功能不适用于 IE8,但适用于 google chrome 和 firefox。

XmlDom 包含 xml 数据

 $(XmlDom).find('Message').each(function(){
        if($(this).attr('id')==id)
        {
          msg=  $(this).find('messageText').text();

        }

    });

请帮助

这是样本数据

      <Messages> 
      <Message id="4">      
      <messageText>text tenvcnvxtn.</messageText>
      </Message>
      <Message id="5">
      <messageText>text textn.</messageText>
      </Message>
    </Messages>
4

2 回答 2

3

jQuery 的新版本不支持 IE8 或更低版本。如果您需要支持它们,请使用迁移插件或支持 IE8 的 jQuery 版本。

以 1.9.1 为例。

jQuery 1.x

自 jQuery 1.9.0 起,jQuery 1.x 行发生了重大变化。如果您从 1.9 之前的 jQuery 版本升级或需要使用尚未更新的插件,我们强烈建议您也使用 jQuery Migrate 插件。阅读jQuery 1.9 升级指南e 和 jQuery 1.9 发布博客文章了解更多信息。

jQuery 2.x

jQuery 2.x 具有与 jQuery 1.x 相同的 API,但不支持 Internet Explorer 6、7 或 8。jQuery 1.9 升级指南中的所有说明也适用于此处。由于 IE 6/7/8 仍然比较常见,我们建议使用 1.x 版本,除非您确定没有 IE 6/7/8 用户正在访问该站点。请仔细阅读2.0 发行说明

于 2013-11-13T06:48:40.680 回答
0

在 IE8 中,它使用 HTML 文档。它不会识别 XML。如果要使用 XML,则需要通过 IE XML 解析器进行解析。

    var XmlDom = "<messages>" +
        "<message id=\"msg1\">" +
            "<messageText>message 1</messageText>" +
        "</message>" +
        "<message id=\"msg2\">" +
            "<messageText>message 2</messageText>" +
        "</message>" +
        "<message id=\"msg3\">" +
            "<messageText>message 3</messageText>" +
        "</message>" +
         "</messages>";
    var id = "msg2";
    var xml = new ActiveXObject("Microsoft.XMLDOM");
    xml.loadXML(XmlDom);

    if (xml.parseError.errorCode != 0) {
            var err = xml.parseError;
            console.log(err.reason);
    }

    $("messages", xml).find("message").each(function(){
            if($(this).attr("id") == id) {
                    msg =  $(this).find("messageText").text();
                    console.log(msg);
            }
    });
于 2013-11-13T08:18:27.230 回答