1

可能重复:
jQuery ajax 返回值

我有这个 jQuery 脚本:

$('#headerSubmit').click(function() {
    var source = $('#header').attr('value');
});

获取value元素的属性并将其存储在source变量中。

如何返回source变量以在脚本的其余部分中使用?

谢谢。

4

9 回答 9

2

由于您将source在单击后设置变量,因此任何使用该变量的代码都应仅在此类事件之后执行。因此,您应该在其后粘贴您的代码:

$('#headerSubmit').click(function() {
    var source = $('#header').attr('value');
    // Rest of the code here
});

否则,在单击之前不会初始化变量。

编辑:请注意所有其他答案都会促使您在全局范围内声明变量。这是没有用的,除非您的代码在单击后执行,因为变量将为空。

于 2012-08-08T05:54:59.447 回答
1
var source;
$('#headerSubmit').click(function() {
    source = $('#header').attr('value');
});
于 2012-08-08T05:54:30.640 回答
1

在此单击脚本之外定义 var 源。并像这样使用:

var source;
$('#headerSubmit').click(function() {
    source = $('#header').attr('value');
});

这样,'source' 将具有全局范围,并且以后可以在具有分配值的任何地方使用。

于 2012-08-08T05:54:37.007 回答
1

将“源”声明为全局。

那是..

var source;
//your piece of jquery code
$('#headerSubmit').click(function() {
   source = $('#header').attr('value');
});
于 2012-08-08T05:56:17.447 回答
0

如果您希望在整个脚本中使用源代码,请在函数外部声明它:

var source = null;
$('#headerSubmit').click(function() {
    source = $('#header').attr('value');
});
于 2012-08-08T05:54:00.410 回答
0

您可以返回一个变量

 return source;

听起来您可能只是想稍后在脚本中调用该变量。这是范围的问题。如果您取出 var 并声明

source = $('#header').attr('value');

您将能够在脚本的其他部分调用该变量。

于 2012-08-08T05:54:48.783 回答
0

您使用它的方式是异步的。您正在设置在“点击”事件上触发的回调。要将其用于脚本的其余部分,您有两个选择。

  1. 使用全局变量。(虽然有时使用它很糟糕)

    var myGlobalVariable;
    $('#headerSubmit').click(function() {
        var myGlobalVariable = $('#header').attr('value');
    });
    
  2. 在回调中调用需要此值的函数。

    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'));
    });
    
于 2012-08-08T05:56:05.623 回答
0
var source;
$('#headerSubmit').click(function() {
    source = $('#header').attr('value');
   return source;
});
于 2012-08-08T05:56:50.100 回答
0

要在全局范围内声明变量,必须在尝试将其设置在函数中之前对其进行初始化,否则该声明仅适用于局部范围。如果您的范围错误,那么您的参考资料将无效,您可能会面临更大的问题。

在这种情况下,您将无法在脚本中的其他位置引用变量值,因为该变量当前仅存在于您的函数中。

每个MDN

当您在任何函数之外声明变量时,它被称为全局变量,因为它可用于当前文档中的任何其他代码。在函数中声明变量时,它称为局部变量,因为它仅在该函数中可用。

var source;
$('#headerSubmit').click(function() {
    source = $('#header').attr('value');
});
于 2012-08-08T05:56:54.710 回答