可能重复:
jQuery ajax return value
我有这个jQuery脚本:
$('#headerSubmit').click(function() {
var source = $('#header').attr('value');
});
获取元素的value
属性并将其存储在source
变量中。
如何返回source
变量以在脚本的其余部分中使用?
感谢。
答案 0 :(得分:2)
正如您在单击后设置source
变量一样,任何使用该变量的代码都应该在此类事件之后执行。因此,您应该在它之后粘贴代码:
$('#headerSubmit').click(function() {
var source = $('#header').attr('value');
// Rest of the code here
});
否则,在点击之前不会初始化变量。
编辑:注意所有其他答案都会激发您在全局范围内声明变量。除非您的代码在点击后执行,否则这是无用的,因为变量将为null。
答案 1 :(得分:1)
var source;
$('#headerSubmit').click(function() {
source = $('#header').attr('value');
});
答案 2 :(得分:1)
在此点击脚本之外定义var source。并使用这样:
var source;
$('#headerSubmit').click(function() {
source = $('#header').attr('value');
});
通过这种方式来源'将具有全局范围,并且可以在以后具有指定值的任何地方使用。
答案 3 :(得分:1)
将'source'声明为全局。
那是......
var source;
//your piece of jquery code
$('#headerSubmit').click(function() {
source = $('#header').attr('value');
});
答案 4 :(得分:0)
如果您希望在整个脚本中使用source,请在函数外部声明:
var source = null;
$('#headerSubmit').click(function() {
source = $('#header').attr('value');
});
答案 5 :(得分:0)
您可以使用
返回变量 return source;
听起来你可能只是想稍后在脚本中调用该变量。这是范围问题。如果你取出var并且只是声明
source = $('#header').attr('value');
您将能够在脚本的其他部分调用该变量。
答案 6 :(得分:0)
您使用它的方式是异步。您正在设置一个在“click”事件中触发的回调。要使其可用于脚本的其余部分,您有两种选择。
使用全局变量。 (虽然有时使用这个很糟糕)
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'));
});
答案 7 :(得分:0)
var source;
$('#headerSubmit').click(function() {
source = $('#header').attr('value');
return source;
});
答案 8 :(得分:0)
要在全局范围中声明变量,必须在尝试在函数中设置它之前对其进行初始化,否则声明仅适用于本地范围。如果您的范围错误,那么您的引用将无效,您可能会面临更大的问题。
在这种情况下,您将无法在脚本中的其他位置引用变量值,因为该变量目前仅存在于您的函数中。
每MDN:
当你在任何函数之外声明一个变量时,它被称为a 全局变量,因为它可用于任何其他代码 目前的文件。在函数中声明变量时,它是 称为局部变量,因为它只在其中可用 功能
var source;
$('#headerSubmit').click(function() {
source = $('#header').attr('value');
});