【发布时间】:2016-01-07 15:08:37
【问题描述】:
我正在尝试用按钮的值填充事件(onclick)上的数组(会有不同的按钮具有不同的值,这就是我使用数组的原因),我希望能够访问它事件处理函数之外的数组。 这是我到目前为止所尝试的,但我只是不知道如何访问事件处理函数之外的数组。
这是 HTML:
<button value="5"> button </button>
<div> The value is: <span id="res"></span></div>
这里是脚本:
var n = [];
var val;
var ret;
function add(arr,val) {
arr.push(val);
return val;
}
document.body.addEventListener("click", function(event) {
if (event.target.nodeName == "BUTTON") {
val = event.target.value;
ret = add(n, val);
console.log(n); //these console.log are tests
console.log(ret);
}
console.log(ret); //also this
});
//need to access the array here
console.log(n); //obv doesn't work
console.log(ret); //same
document.getElementById("res").innerHTML = ret; //it remains undefined, obv
我知道为什么这不起作用(这是因为我在事件处理函数中做了所有事情),但我不知道如何做我想做的事情。
有什么建议吗?
【问题讨论】:
-
为什么要使用函数添加到数组中?它是已经是一个函数了......只需将
ret = add(n, val);替换为n.push(val),你应该没有问题。 -
这只是尝试存储值以在代码的另一部分重用它,因为这是我需要做的。只是替换不起作用,用户 dsh 解释了原因。
-
jup,我错过了,但 dsh 得到了一个不错的支持。
标签: javascript arrays dom events dom-events