2011-06-05 26 views
0

這可能是一個愚蠢的問題,但我仍然面臨着這個問題。如何重置列表

var eformDetailIds = []; 


eformDetailIds=$("[name=eform_id]").map(function(){ return $(this).val() }).get(); 

這是我在js函數中編寫的代碼,並在按鈕單擊時調用此函數。

但問題是列表eformDetailIds也包含以前的值。請問如何爲每個函數調用設置這個空列表?提前致謝。

+0

對不起。我每次調用此函數都必須得到一個新清單。這是我正在尋找的。 – Satya 2011-06-05 13:08:18

+0

你得到的代碼將返回新鮮的數組,其中包含當前所有具有名稱「eform_id」的表單元素寫入的值 - 解釋你想要的內容,我們將嘗試在那裏引導你。 – 2011-06-05 13:15:33

+0

如果有幫助,[這裏是](http://jsfiddle.net/7pdh4/)現場測試用例,請隨時更改並用它來演示你的目標。 – 2011-06-05 13:16:26

回答

2

剛剛成立的長度爲零:

eformDetailIds.length = 0; 

或者分配一個新的數組:

eformDetailIds = []; 

現在,說,根據您發佈的整個陣列肯定會被替換每個代碼時間「.map()」調用運行。換句話說,以前的值將而不是保留在數組中。也許你應該多發佈一些信息來解釋它是什麼讓你覺得舊的價值依然存在。

+0

但是我已經使用了第二個選項var eformDetailIds = [];但仍然無法正常工作。請給我建議 – Satya 2011-06-05 13:10:45

+0

@Satya你還沒有發佈足夠的信息來了解問題所在。當你完全重新賦值時,以前的值**不會保留在數組**中;實際上它完全是**新陣列。 – Pointy 2011-06-05 13:11:50

+0

嗨Pointy ..你給我提供的答案是正確的,應該工作。但我發現問題不在於此。謝謝你 – Satya 2011-06-05 13:27:42

1

不要忘記你總是可以在陣列重置這樣:

myArray = new Array(); 

這是很容易的。

+0

這個答案是一個真實的陳述,但是請注意''''''''和'x = new Array()'是完全一樣的。 – Pointy 2011-06-05 13:16:12