无法编辑函数内部的数组

bec*_*kah 0 javascript arrays function

我试图将push一个元素添加到函数内部的全局数组中而没有运气.函数由addEventListener()if 调用,这对所有人都有帮助.

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

//add listener
document.getElementsByClassName("add")[0].addEventListener("click", addInfo());
Run Code Online (Sandbox Code Playgroud)

这导致错误:

Uncaught SyntaxError: Unexpected identifier
Run Code Online (Sandbox Code Playgroud)

如何存储所有新提交的项目以保持运行记录?

Ray*_*yon 6

addEventListener期望第二个参数(listener)为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);
Run Code Online (Sandbox Code Playgroud)
<input type="text" id="new_car" autofocus>
<br>
<br>
<input type="button" value="Add" class="add">
Run Code Online (Sandbox Code Playgroud)