Javascript 未定义的返回值,单位为$。get jquery
这个问题已经得到了回答并且投票。我的编辑是为了让它更清晰,并与其他开发人员分享一些新知识,我并不期待有新的答案 我正在用jQuery阅读XML,但当我试图显示一个警报时,它完全工作了;然而,当我试图返回值时,它总是给我一个消息,它是未定义的Javascript 未定义的返回值,单位为$。get jquery,javascript,jquery,callback,Javascript,Jquery,Callback,这个问题已经得到了回答并且投票。我的编辑是为了让它更清晰,并与其他开发人员分享一些新知识,我并不期待有新的答案 我正在用jQuery阅读XML,但当我试图显示一个警报时,它完全工作了;然而,当我试图返回值时,它总是给我一个消息,它是未定义的 function getText(value){ var val; var lang; var location; lang=getLanguage(); if (lang=='en') lang=
function getText(value){
var val;
var lang;
var location;
lang=getLanguage();
if (lang=='en')
lang='';
else
lang+='.';
location="resources/AppResources."+lang+'xml';
$.get(location, function (xml) {
$(xml).find("data").each(function () {
var name=$(this).attr('name');
if (name===value)
return $(this).find('value').text();
});
});
}
这是调用它的代码:
$(document).ready(function() {
alert(getText('AppTitle'));
});
如果我在return语句中添加一个警报,它会显示所选的值
小更新:
正如Arun p Johny在回答中所解释的,我的代码中遗漏的部分是Mozilla以这种方式定义的:
回调函数是作为参数传递到另一个函数中的函数,然后在外部函数中调用该函数以完成某种例程或操作
不能从异步方法返回值,最简单的解决方案是使用如下回调函数:
function getText(value, callback) {
var val;
var lang;
var location;
lang = getLanguage();
if (lang == 'en')
lang = '';
else
lang += '.';
location = "resources/AppResources." + lang + 'xml';
$.get(location, function (xml) {
$(xml).find('data[name="' + value + '"]').each(function () {
callback($(this).find('value').text());
});
});
}
$(document).ready(function() {
getText('AppTitle', function(value){
alert(value);
})
});
@用户2889347阅读了有关同源策略的信息