2011-04-11 48 views
1

我有下面的html代碼,並嘗試通過javascript函數的onchanging向全局數組添加新的值。我試圖做下面的方式。但它是給javascript錯誤。請告訴任何人如何做到這一點。javascript全局數組

<html> 
<head> 
<script> 
var list=[]; 
function getList(value){ 

list=list(value); 
} 
</script> 

</head> 

<body> 

<tr> 
<td> 
<select name="test" onchange="getList(this)"> 
<option id="1" value="one">One</option> 
<option id="2" value="two">two</option> 

</select> 
</td> 
</tr> 
<tr> 
<td> 
<select name="test1" onchange="getList(this)"> 
<option id="3" value="three">three</option> 
<option id="4" value="four">four</option> 

</select> 
</td> 
</tr> 

</body> 
</html> 
+0

如何告訴我們錯誤是什麼?函數'list'是否定義了某處(我猜不是)?我建議你先閱讀一個JavaScript教程:https://developer.mozilla.org/en/JavaScript/Guide – 2011-04-11 10:30:45

回答

5

更改Javascript以下

var list=new Array; ///this one way of declaring array in javascript 
function getList(value){ 

list.push(value);//push function will insert values in the list array 
} 
+0

謝謝,值是添加到下一個索引或相同的索引? – user569125 2011-04-11 10:32:21

+5

無需將'[]'更改爲'new Array' – Raynos 2011-04-11 10:32:40

+0

@ user569125:'list.push()'將值添加到下一個索引 – 2011-04-11 10:33:36

0

您目前正通過整個選擇元素給你的函數,而不是選擇的值。您可以通過所選擇的值是這樣的:

getList(this.options[this.selectedIndex].value) 

然後你可以使用list.push(value)在功能選擇的值添加到您的陣列。

0

添加一個值在JavaScript中的數組最簡單的方法,它使用push方法(除非你需要支持IE5):

function getList(value) { 
    list.push(value); 
} 

兩件事情:

  • 在你的情況會將選擇元素的引用添加到列表中。這很可能不是你想要的。你想要添加什麼?

  • getList這不是一個真正合適的名稱。 addToList可能會更好。