我试图将变量的值从一个函数传递给另一个函数
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
中的最后一个值。我怎么能通过它?
答案 0 :(得分:3)
在两个函数之外声明一个变量'范围。成功回调函数中有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);
});
});
这样,变量message
可用于两个函数。
答案 1 :(得分:1)
msg的作用域是第一个文档就绪函数,第二个函数不可用。
<button id="btn1">
Button 1
</button>
<button id="btn2">
Button 2
</button>
注意msg1仅在第一个文档就绪函数中定义,但msg2是全局定义的(不在函数内)。按钮1不会工作,按钮2会在最后检查小提琴。
var msg2
$(document).ready(function(){
var msg1 = "Hello World"
msg2 = "Goodbye World"
})
$(document).ready(function(){
$("#btn1").on("click", function(e) {
e.preventDefault()
alert(msg1)
})
$("#btn2").on("click", function(e) {
e.preventDefault()
alert(msg2)
})
})
答案 2 :(得分:1)
问题是消息。你成功回调的msg只是局部变量,也很奇怪:
success: function(msg) {
document.getElementById('names').value = x;
msg = x ;
}
//没意义! msg是回调函数的arg
制作全局变量:
var Message = '';
介绍成功:
Message = msg;