2012-08-08 209 views
1

可能重複:
jQuery ajax return value返回值

我有這樣的jQuery腳本:

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

是可以獲得元素,並將其存儲的value屬性在source變量中。

如何返回source變量以用於腳本的其餘部分?

謝謝。

+2

簡而言之:你做錯了。你不想這樣做。 – JohnFx 2012-08-08 05:52:53

回答

2

由於您在單擊後將設置source變量,因此只有在發生此類事件後才能執行使用該變量的任何代碼。因此,您應該在其後面粘貼您的代碼:

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

否則,該變量在點擊之前不會被初始化。

編輯:注意所有其他答案煽動你在全局範圍聲明變量。這是無用的,除非您的代碼在點擊後執行,因爲變量將爲空。

0

如果你想在整個腳本中使用源,聲明它之外的功能:

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

定義此點擊腳本之外的VAR源。並使用像這樣:

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

以這種方式'源'將具有全局範圍,並且可以隨後在任何地方使用指定的值。

0

您可以

return source; 

聽起來返回一個變量一樣,你可能只是想以後在腳本中調用該變量。這是範圍問題。如果你把var和剛剛宣佈

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

您將能夠調用該變量在腳本中的其他部分。

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

申報 '來源' 爲全球性的。

也就是說..

var source; 
//your piece of jquery code 
$('#headerSubmit').click(function() { 
    source = $('#header').attr('value'); 
}); 
0
var source; 
$('#headerSubmit').click(function() { 
    source = $('#header').attr('value'); 
    return source; 
}); 
0

要在全球範圍內聲明一個變量,你必須嘗試在功能設置之前,對其進行初始化,否則申報只適用於局部範圍。如果你的示波器錯誤,那麼你的引用將是無效的,你可以讓自己暴露於更大的問題。

在這種情況下,您將無法在腳本中的其他位置引用變量值,因爲該變量目前僅存在於您的函數中。

MDN

當你聲明的任何功能以外的變量,它被稱爲 全局變量,因爲它是提供給 當前文檔中的任何其他代碼。當你在一個函數中聲明一個變量時,它是 被稱爲局部變量,因爲它僅在該函數中可用。

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