首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在IE上,JQuery没有循环通过XML

在IE上,JQuery没有循环通过XML
EN

Stack Overflow用户
提问于 2013-01-01 03:33:39
回答 2查看 133关注 0票数 1

以下代码在Chrome和Firefox中运行良好,但在IE中不起作用。它正在获取IE中的数据(我可以在控制台中看到它)-但它不会通过这两个.each循环

代码语言:javascript
复制
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的格式如下:

代码语言:javascript
复制
 <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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-01 03:38:47

可能是因为console.log()

默认情况下,IE 8及以下版本没有控制台对象

您需要打开开发人员工具以使其工作,或者创建一个新的控制台对象。

票数 2
EN

Stack Overflow用户

发布于 2013-01-01 03:44:29

首先,IE并不总是喜欢console.log,所以删除它。

其次,如果标记名是小写的,则在尝试查找时使用小写字母。

第三,使用var关键字,并且不要在循环中将变量声明为全局变量。

最后但并非最不重要的是,XML应该使用$.parseXML进行解析,如下所示:

代码语言:javascript
复制
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());
        });
    });
}​
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14105434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档