2013-12-18 84 views
4

我在網頁中有一個變量被設置爲一個值並且是字符串類型。當一個按鈕被點擊時,它會在函數結尾調用一個函數&,我想要清理之前設置的任何東西。我曾嘗試使用:jQuery - 重置變量

$.removeData(myVar); 

但它什麼也沒做。在該語句之後的&之前的日誌語句顯示它在上述語句之後的&之前的值仍然具有值&。

另一個未使用的變量的值爲undefinedundefined的一種類型。這兩個變量恰好是頁面中的全局變量。

如何將myVar重置爲初始狀態?我知道它應該很簡單,但我錯過了一些東西。將不勝感激任何幫助。

+0

而不是使用全局變量,使用內部功能 –

+0

當地的一個更好的你展示一些代碼或的jsfiddle –

+0

@ pm.calabrese並非所有的編程問題需要的代碼。他很好地描述了基本問題。 – Katana314

回答

12

嗯......幾個可能的直接的答案。

myVar = undefined; 
myVar = null; 
delete window.myVar; 

然而,我會質疑變量是全局的邏輯,但只能在某些方法中使用。下面是它可能是更好的結構(與阿賈克斯加起來值的隨機僞爲例):

addAjaxButton.onClick(function() { 
    var counter = 0; 
    ajax(function(addition) { 
    counter += addition; 
    ajax(function(moreAdd) { 
     counter += moreAdd; 
     alert('Total is ' + counter); 
    }); 
    }); 
}); 

在這種情況下,計數器並不需要被刪除 - 它只是走出去的範圍當所有AJAX都完成時。

1

只是給它分配一個值。如果初始狀態未定義,請將其設置爲空。你不必對jQuery做任何事情來殺死這個值。

-2

這將是重置價值的方式:

$(myVar).val(''); 
+0

這不提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 –

+0

對不起,你不喜歡我的答案的措辭。我編輯它看起來不像一個澄清的問題,作爲一個建議的答案更清晰。 – redlena

0

這聽起來像你的功能是做一些「副作用」的事情,你想撤消這些東西?

本聲明

我想清理先前已設定任何東西。

是不一樣的這種說法

你如何重置myVar的初始狀態?

你真正想要做的是將其複製到本地作用域變量,而不是更改全局。此代碼演示如何使用函數參數並在本地製作全局變量的副本。

var someGlobal = 1; 
someMethod(); 
someOtherMethod(someGlobal); 

function someMethod() { 
    var localVar = someGlobal; 
    localVar = 2; 
} 

function someOtherMethod(localVar) { 
    localVar = 3; 
} 

window.console.log(someGlobal);