【问题标题】:jQuery XML parsing in IE8IE8 中的 jQuery XML 解析
【发布时间】:2010-08-31 15:21:09
【问题描述】:

我有一些要在 jQuery 中解析的 XML。

<payload>
    <value key="VehicleMake">
        <value key="description">Aeon</value>
        <value key="code">18</value>
    </value>
    <value key="VehicleMake">
        <value key="description">Alfa Romeo</value>

        <value key="code">120</value>
    </value>
</payload>

在除 IE(特别是 IE8)之外的所有浏览器中,以下工作:

$.ajax({
    type : "GET",
    async : false,
    url : "/services/vehiclemake",
    success :
        function(xmlResponse) {
        var data = $("payload", xmlResponse).children("value").map(function() {     
            //IE8 fails on the next line
            var code = $(this).children("value [key='code']").text();
            var desc = $(this).children("value [key='description']").text();
            return {
                value : desc,
                vehicleCode  : code,
                label : desc
            };
        }).get();
    }
});

在 IE8 中,分配给“代码”失败,提示:“TypeError:对象不支持此属性或方法”。

如果我使用这种方法就可以了:

$.ajax({
    type : "GET",
    async : false,
    url : "/services/vehiclemake",
    success :
        function(xmlResponse) {
        var data = $("payload", xmlResponse).children("value").map(function() {
            var code;
            var desc;           
            var elements = $(this).children();
            for (i = 0; i < elements.length; i++) {
                if(elements[i].attributes.getNamedItem("key").value == 'code') {
                    code = elements[i].text;
                }
                if(elements[i].attributes.getNamedItem("key").value == 'description') {
                    desc = elements[i].text;
                }
            }
            var desc = $(this).children("value [key='description']").text();
            return {
                value : desc,
                vehicleCode  : code,
                label : desc
            };
        }).get();

谁能告诉我为什么标准的 jQuery 属性选择器在 IE8 中不起作用?正在以正确的 mime 类型返回 XML。

谢谢。

【问题讨论】:

    标签: jquery xml jquery-selectors


    【解决方案1】:

    我不认为你想要一个空间:

    .children("value[key='code']")
    

    可能无法解决,但我认为无论如何都需要解决。

    【讨论】:

    • 完美的快速响应。就是这样。不错的跨浏览器怪异。
    • 太棒了!当我从手机发帖时,我不确定,我无法获取信息。我很高兴它有帮助:)
    猜你喜欢
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多