从函数获取变量到另一个javascript

从函数获取变量到另一个javascript,javascript,Javascript,我试图将变量的值从一个函数传递到另一个函数 function changeParent(){ $(document).ready(function(){ $('a').on('click',function() { var x = $(this).attr('id'); var y = $(this).attr('name'); $.ajax({ type: 'POST

我试图将变量的值从一个函数传递到另一个函数

function changeParent(){
    $(document).ready(function(){
        $('a').on('click',function() {
            var x = $(this).attr('id');
            var y = $(this).attr('name');
            $.ajax({
                type: 'POST',
                url: 'http://test.local/Family.php?action=getId',
                data: {'childId' : y},
                success: function(msg) {
                    document.getElementById('names').value = x;
                    msg = x ;
                }
            });
        });
    });
}
从第一个函数调用
msg
的第二个函数

$(document).ready(function(){
    $('#saveId').on('click',function() {
        alert(msg);        
    });
});
我试过了

alert(window.msg);

但是它没有得到
msg
中的最后一个值。如何传递它?

在两个函数的作用域之外声明一个变量。success calback函数中有一个
msg
,因此当您调用
msg=x
时,它实际上为该引用分配了x

var message;

function changeParent(){
   $(document).ready(function(){
        $('a').on('click',function() {
            var x = $(this).attr('id');
            var y = $(this).attr('name');
            $.ajax({
                type: 'POST',
                url: 'http://test.local/Family.php?action=getId',
                data: {'childId' : y},
                success: function(msg) {
                    document.getElementById('names').value = x;
                    message = x ;
                }
            });
        });
    });
}

$(document).ready(function(){
    $('#saveId').on('click',function() {
        alert(message);        
    });
});

这样,变量
消息
可用于两个函数。

在两个函数的作用域之外声明一个变量。success calback函数中有一个
msg
,因此当您调用
msg=x
时,它实际上为该引用分配了x

var message;

function changeParent(){
   $(document).ready(function(){
        $('a').on('click',function() {
            var x = $(this).attr('id');
            var y = $(this).attr('name');
            $.ajax({
                type: 'POST',
                url: 'http://test.local/Family.php?action=getId',
                data: {'childId' : y},
                success: function(msg) {
                    document.getElementById('names').value = x;
                    message = x ;
                }
            });
        });
    });
}

$(document).ready(function(){
    $('#saveId').on('click',function() {
        alert(message);        
    });
});

这样,变量
消息
可用于两种功能。

msg的作用域为第一个文档准备功能,而不可用于第二个功能

<button id="btn1">
Button 1
</button>

<button id="btn2">
Button 2
</button>

Fiddle:

消息的作用域为第一个文档准备功能,第二个功能不可用

<button id="btn1">
Button 1
</button>

<button id="btn2">
Button 2
</button>

小提琴:问题是味精。成功回调中的msg是唯一的局部变量,奇怪的是:

success: function(msg) {
     document.getElementById('names').value = x;
     msg = x ;
  }
//没道理!msg是回调函数的参数

使全局变量:

var Message  = '';
成功简介:

Message = msg;

问题是味精。成功回调中的msg是唯一的局部变量,奇怪的是:

success: function(msg) {
     document.getElementById('names').value = x;
     msg = x ;
  }
//没道理!msg是回调函数的参数

使全局变量:

var Message  = '';
成功简介:

Message = msg;

$('#saveId').on('click',function(){alert(document.getElementById('names').value);})
msg的作用域是第一个函数,请首先全局定义它。在顶部,只需执行var x@RickCalder我怎样才能让它全球化。。我试过window.msg,但没有work@Adelin我尝试了警报(document.getElementById('names').value);它不起作用:/检查所有3个答案lol
$('#saveId')。在('click',function(){alert(document.getElementById('names').value);})
msg的作用域是第一个函数,请首先全局定义它。在顶部,只需执行var x@RickCalder我怎样才能让它全球化。。我试过window.msg,但没有work@Adelin我尝试了警报(document.getElementById('names').value);它不起作用:/检查所有3个答案:)击败我:)