首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在没有JS警告的情况下使用jQuery将XML加载到JS变量

在没有JS警告的情况下使用jQuery将XML加载到JS变量
EN

Stack Overflow用户
提问于 2012-04-13 21:00:40
回答 2查看 518关注 0票数 0

我知道关于将XML加载到JS变量的问题已经在这里发布了很多次,但我没有找到一个可行的解决方案。在我的脚本中,我在ajax请求之前声明了一个变量,然后将结果添加到该变量中。只有当我向脚本添加警告时,这才起作用:

代码语言:javascript
代码运行次数:0
运行
复制
var myDB;
$.ajax({
    type: 'GET',
    url: 'db.xml',
    dataType: 'xml',
    success: function (xml){
        myDB = xml;
    }
});

alert(myDB); //returns: undefined

$(myDB).find('item').each(function (){
    var question = $(this).find('question').text();
    alert(question);
});

上面的代码只适用于警报。当我删除警报时,代码不起作用。在没有警报的情况下,我如何使其工作?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-13 21:03:36

ajax请求是异步的。这意味着,您在成功选项中给出的函数稍后会被执行。

启动请求后,您的变量仍然为空。只有当您等待足够长的时间确认阻塞警报时,变量才会被加载。

您将需要将迭代添加到成功函数中,其中xml数据肯定是可用的。

票数 1
EN

Stack Overflow用户

发布于 2012-04-13 21:02:42

为此,您需要将代码添加到成功处理程序中:

代码语言:javascript
代码运行次数:0
运行
复制
var myDB;
$.ajax({
    type: 'GET',
    url: 'db.xml',
    dataType: 'xml',
    success: function (xml){
        $(myDB).find('item').each(function (){
            var question = $(this).find('question').text();
        });
    }
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10141320

复制
相关文章

相似问题

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