1
我有一些我在jQuery中解析的XML。IE8中的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它的分配不能「代碼」的說法:「類型錯誤:對象不支持此屬性或方法「。
如果我使用這種方法則是罰款:
$.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不工作? XML以正確的MIME類型返回。
謝謝。
完美的快速反應。這就是它。很不錯的跨瀏覽器怪異。 – Damo 2010-08-31 07:32:26
優秀!我不確定,因爲我是從我的手機發帖,我無法獲取信息。我很高興它幫助:) – Codesleuth 2010-08-31 08:07:41