可能重复:
jQuery ajax 返回值
我有这个 jQuery 脚本:
$('#headerSubmit').click(function() {
var source = $('#header').attr('value');
});
获取value
元素的属性并将其存储在source
变量中。
如何返回source
变量以在脚本的其余部分中使用?
谢谢。
可能重复:
jQuery ajax 返回值
我有这个 jQuery 脚本:
$('#headerSubmit').click(function() {
var source = $('#header').attr('value');
});
获取value
元素的属性并将其存储在source
变量中。
如何返回source
变量以在脚本的其余部分中使用?
谢谢。
由于您将source
在单击后设置变量,因此任何使用该变量的代码都应仅在此类事件之后执行。因此,您应该在其后粘贴您的代码:
$('#headerSubmit').click(function() {
var source = $('#header').attr('value');
// Rest of the code here
});
否则,在单击之前不会初始化变量。
编辑:请注意所有其他答案都会促使您在全局范围内声明变量。这是没有用的,除非您的代码在单击后执行,因为变量将为空。
var source;
$('#headerSubmit').click(function() {
source = $('#header').attr('value');
});
在此单击脚本之外定义 var 源。并像这样使用:
var source;
$('#headerSubmit').click(function() {
source = $('#header').attr('value');
});
这样,'source' 将具有全局范围,并且以后可以在具有分配值的任何地方使用。
将“源”声明为全局。
那是..
var source;
//your piece of jquery code
$('#headerSubmit').click(function() {
source = $('#header').attr('value');
});
如果您希望在整个脚本中使用源代码,请在函数外部声明它:
var source = null;
$('#headerSubmit').click(function() {
source = $('#header').attr('value');
});
您可以返回一个变量
return source;
听起来您可能只是想稍后在脚本中调用该变量。这是范围的问题。如果您取出 var 并声明
source = $('#header').attr('value');
您将能够在脚本的其他部分调用该变量。
您使用它的方式是异步的。您正在设置在“点击”事件上触发的回调。要将其用于脚本的其余部分,您有两个选择。
使用全局变量。(虽然有时使用它很糟糕)
var myGlobalVariable;
$('#headerSubmit').click(function() {
var myGlobalVariable = $('#header').attr('value');
});
在回调中调用需要此值的函数。
function myAnotherFunction(val){
alert("I received" + val + ". I will update my set of"
+" variables without putting it as global variable");
}
$('#headerSubmit').click(function() {
myAnotherFunction($('#header').attr('value'));
});
var source;
$('#headerSubmit').click(function() {
source = $('#header').attr('value');
return source;
});
要在全局范围内声明变量,必须在尝试将其设置在函数中之前对其进行初始化,否则该声明仅适用于局部范围。如果您的范围错误,那么您的参考资料将无效,您可能会面临更大的问题。
在这种情况下,您将无法在脚本中的其他位置引用变量值,因为该变量当前仅存在于您的函数中。
每个MDN:
当您在任何函数之外声明变量时,它被称为全局变量,因为它可用于当前文档中的任何其他代码。在函数中声明变量时,它称为局部变量,因为它仅在该函数中可用。
var source;
$('#headerSubmit').click(function() {
source = $('#header').attr('value');
});