从jquery函数返回值

时间:2012-08-08 05:51:22

标签: jquery

  

可能重复:
  jQuery ajax return value

我有这个jQuery脚本:

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

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

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

感谢。

9 个答案:

答案 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”事件中触发的回调。要使其可用于脚本的其余部分,您有两种选择。

  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'));
    });
    

答案 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');
});
相关问题