我有這樣的jQuery腳本:
$('#headerSubmit').click(function() {
var source = $('#header').attr('value');
});
是可以獲得元素,並將其存儲的value
屬性在source
變量中。
如何返回source
變量以用於腳本的其餘部分?
謝謝。
我有這樣的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 = null;
$('#headerSubmit').click(function() {
source = $('#header').attr('value');
});
var source;
$('#headerSubmit').click(function() {
source = $('#header').attr('value');
});
定義此點擊腳本之外的VAR源。並使用像這樣:
var source;
$('#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;
//your piece of jquery code
$('#headerSubmit').click(function() {
source = $('#header').attr('value');
});
var source;
$('#headerSubmit').click(function() {
source = $('#header').attr('value');
return source;
});
要在全球範圍內聲明一個變量,你必須嘗試在功能設置之前,對其進行初始化,否則申報只適用於局部範圍。如果你的示波器錯誤,那麼你的引用將是無效的,你可以讓自己暴露於更大的問題。
在這種情況下,您將無法在腳本中的其他位置引用變量值,因爲該變量目前僅存在於您的函數中。
每MDN:
當你聲明的任何功能以外的變量,它被稱爲 全局變量,因爲它是提供給 當前文檔中的任何其他代碼。當你在一個函數中聲明一個變量時,它是 被稱爲局部變量,因爲它僅在該函數中可用。
var source;
$('#headerSubmit').click(function() {
source = $('#header').attr('value');
});
簡而言之:你做錯了。你不想這樣做。 – JohnFx 2012-08-08 05:52:53