2016-07-28 27 views
0

我試圖將一個元素(push)添加到函數內的全局數組中,但沒有運氣。如果這個功能有幫助,該功能將被addEventListener()調用。無法編輯函數內的數組

var cars = ["Saab", "Volvo", "BMW"]; 
function addInfo(){ 
    cars.push(document.getElementById("new_car").value); 
} 

//add listener 
document.getElementsByClassName("add")[0].addEventListener("click", addInfo()); 

這是導致錯誤:

Uncaught SyntaxError: Unexpected identifier 

我怎麼能存儲所有新提交的項目,以保持一個流水賬?

+1

在最後一行,刪除變化'ADDINFO()'來'addInfo' – charmeleon

回答

6

addEventListener expects second argument(listener) as function-expression ,

var cars = ["Saab", "Volvo", "BMW"]; 
 

 
function addInfo() { 
 
    var elem = document.getElementById("new_car"); 
 
    cars.push(elem.value); 
 
    elem.value = ''; 
 
    elem.focus(); 
 
    console.log(cars); 
 
} 
 
document.getElementsByClassName("add")[0].addEventListener("click", addInfo);
<input type="text" id="new_car" autofocus> 
 
<br> 
 
<br> 
 
<input type="button" value="Add" class="add">

+0

不幸的是,儘管它讓我實際上ADDINFO現在可以訪問陣列()我無法使用此實現修改數組 – beckah

+0

@beckah - 使用代碼段檢查更新... – Rayon

+0

如果將此添加到表單中並且有兩個不同的按鈕,它永遠不會保存列表的狀態:https:/ /gist.github.com/anonymous/2fbff074a5458e75ec2981d0b16692e5 – beckah