2016-07-28 68 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