以下代码在Chrome和Firefox中运行良好,但在IE中不起作用。它正在获取IE中的数据(我可以在控制台中看到它)-但它不会通过这两个.each循环
function searchServing(which,choice){
var url = "search.asp?" + which + "=" + choice;
$.get(url, function(data){
console.log("data" + data);
$.each($(data).find("company"),function(index, el) {
loc = $(this).find('Location').text();
console.log("loc: "+ loc);
});
})//$.get(url, function(data){
.error(function() {
})//.error(function() {
.success(function(data) {
$.each($('company',data),function(index, el) {
loc = $(this).find('Location').text();
console.log("location: "+ loc);
}
}
}XML的格式如下:
<company>
<sql><%=sSQL%></sql>
<uid><%=uid%></uid>
<companyName><%=company%></companyName>
<location><%=location%></location>
<phone1><%=phone1%></phone1>
<phone2><%=phone2%></phone2>
<phone3><%=tollfree%></phone3>
<serving><%=serving%></serving>
</company>发布于 2013-01-01 03:38:47
可能是因为console.log()
默认情况下,IE 8及以下版本没有控制台对象
您需要打开开发人员工具以使其工作,或者创建一个新的控制台对象。
发布于 2013-01-01 03:44:29
首先,IE并不总是喜欢console.log,所以删除它。
其次,如果标记名是小写的,则在尝试查找时使用小写字母。
第三,使用var关键字,并且不要在循环中将变量声明为全局变量。
最后但并非最不重要的是,XML应该使用$.parseXML进行解析,如下所示:
function searchServing(which, choice) {
var url = "search.asp?" + which + "=" + choice,
loc = []; //use array if iterating several values
$.get(url, function(xml) {
var xmlDoc = $.parseXML(xml),
$xml = $(xmlDoc);
$.each($xml.find("company"), function(index, el) {
loc.push($(el).find('location').text());
});
});
}https://stackoverflow.com/questions/14105434
复制相似问题