2016-03-28 80 views
1

我有一個存儲在JQuery對象(稱爲$ xml)中的API請求的xml響應。爲了獲得我需要的信息,我正在使用:$xml[0].childNodes[0].childNodes[1].childNodes[1].textContent。這適用於Chrome,Firefox和IE10 +,但IE = < 9不表示對象具有相同的方式。在瀏覽器,Firefox,和IE10 +作品如何遍歷IE7中的JQuery對象的DOM元素?

代碼:

$(function() { 
    $.get('proxy.php', function(data) { 
    if (typeof data == 'string') { 
     console.error(data); 
    } else { 
     var test = $.parseXML(data); 
     var $xml = $(data); 
     console.log(data); 

     alert($xml[0].childNodes[0].childNodes[1].childNodes[1].textContent); 
    } 
    }); 
}); 

在IE中的調試器它示出了對象的陣列的[0]的索引 - 但其中其他瀏覽器然後顯示如「孩子」的後代和'childNodes' - 較低的IE只顯示0: [object],沒有選項可以擴展並查看[object]的內部。


我怎樣才能穿過我的jQuery對象的內容,在IE7 +以及Chrome和Firefox的工作方式?

回答

0

找到了另一種方法來實現這一點,這是更多的跨瀏覽器兼容,更容易閱讀。

$(function() { 
$.get('proxy.php', function(data) { 
    if (typeof data == 'string') { 
    console.error(data); 
    } else { 
    var test = $.parseXML(data); 
    var $xml = $(data); 
    console.log(data); 

    alert($xml.find("Description").text()); 
    } 
}); 
}); 

.find()使用與XML字段的節點名稱允許響應的更靈活的橫動。 .html()適用於Chrome和Firefox(也可能是Edge),但較舊的IE需要.text()才能返回所需的信息。

這對我有用,我可以if..else與「描述」的值或任何其他參數的xml響應,我正在尋找附加功能。