Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未定义的返回值,单位为$。get jquery_Javascript_Jquery_Callback - Fatal编程技术网

Javascript 未定义的返回值,单位为$。get jquery

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=

这个问题已经得到了回答并且投票。我的编辑是为了让它更清晰,并与其他开发人员分享一些新知识,我并不期待有新的答案

我正在用jQuery阅读XML,但当我试图显示一个警报时,它完全工作了;然而,当我试图返回值时,它总是给我一个消息,它是未定义的

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阅读了有关同源策略的信息