我收到了一些XML
这样的文字信息:
var timeZones = {
chennai : 'getTime.php?lat=13.0833333&lan=80.2833333'
}
$.each(timeZones, function(key,value){
$.get(value, function(response){
var getResTime = $(response).find('localtime').text();
//var getResSec =
//day = getResTime.substring(12,2);
//month = getResTime.substring(14,3);
//year = getResTime.substring(17,3);
alert(getResTime);
})
})
但在Internet Explorer中,alert()
没有出现。所有其他浏览器都很好。可以帮助它在IE中工作吗?
在我阅读了一些文章之后,我确实改变了我的功能,以便从IE获得结果,
var timeZones = {
chennai : 'getTime.php?lat=13.0833333&lan=80.2833333'
}
$.each(timeZones, function(key,value){
$.get(value, function(data){
parseXml(data);
var myLocation = $(data).find('localtime').text();
alert(myLocation);
})
})
function parseXml(xml) {
if (jQuery.browser.msie) {
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.loadXML(xml);
xml = xmlDoc;
}
return xml;
}
现在我将数据作为xml接收,但我无法从数据中找到'localtext'信息,仅在ie上。其余的浏览器工作正常。 (我正在收到警报),我做错了什么?
建议请......?
答案 0 :(得分:0)
IE无法将自定义标记视为有效的DOM元素。
对于IE,这样的事情:<localtime>10:00</localtime>
不是有效的DOM,并且无法使用标准方法提取值。
最简单的解决方案是,如果您可以更改XML格式以使用标准HTML,例如:
<div class="localtime">10:00</div>
然后将代码更改为:
var getResTime = $(response).find('.localtime').text();
它应该适用于所有浏览器。