使用通过Ajax加载的XML文件内容成功调用

时间:2013-05-27 12:06:18

标签: javascript jquery xml ajax

我有这段代码:

$.ajax({
    url: "lang_files/" + window.localStorage.language + ".xml",
    dataType: 'xml',
    success: function(data) {
        var xml_node = $("resources", data);
        $("#index_intro").text(xml_node.find('string[name="index_intro"]').text());
    },
    error: function(data) {
        console.log("Error loading XML data");
    }
});

它工作正常,.text()使用我的XML文件中的信息正确设置,我现在希望能够在我的应用程序中使用XML文件,而不仅仅是在成功调用中,所以我做了:

var xml_node;

$.ajax({
    url: "lang_files/" + window.localStorage.language + ".xml",
    dataType: 'xml',
    success: function(data) {
        xml_node = $("resources", data);
    },
    error: function(data) {
        console.log("Error loading XML data");
    }
});

$("#index_intro").text(xml_node.find('string[name="index_intro"]').text());

这不行,我想了解原因。

1 个答案:

答案 0 :(得分:2)

这是因为ajax是异步的,所以在你调用xml_node的时候,它仍然是未定义的。试试这个:

$.ajax({
    url: "lang_files/" + window.localStorage.language + ".xml",
    dataType: 'xml',
    success: function(data) {
        setIndexIntro($("resources", data));
    },
    error: function(data) {
        console.log("Error loading XML data");
    }
});

function setIndexIntro(xml_node)
{
   $("#index_intro").text(xml_node.find('string[name="index_intro"]').text());
}