我想从click事件的数组中获取值。我怎样才能做到这一点。尝试了一些代码不起作用。
var array = ['jane', 'alax', 'russell', 'max'];
var newArr = [];
function myFunction() {
for(var i=0; i<=array.length; i++) {
console.log(array);
newArr.push(array[i]);
}
}
document.getElementById("res").innerHTML = newArr;
它应该在第一次单击时先添加简,然后再单击添加alax,依此类推。
答案 0 :(得分:0)
在您当前的情况下,它会遍历每次点击的所有元素。为了使它像一个一个一样,使用一个计数器变量,该变量在每次单击时都会递增,直到达到数组长度为止,然后使用它来使元素推送并最终更新事件处理程序中的HTML以在每次单击时进行更新。
var array = ['jane', 'alax', 'russell', 'max'];
var newArr = [];
// variable for keep track of clicks
var c = 0;
function myFunction() {
// check value of counter
if (c < array.length) {
// push value and increment counter
newArr.push(array[c++])
// set html
document.getElementById("res").innerHTML = newArr;
}
}
<div id="res"></div>
<button onclick="myFunction()">click</button>
答案 1 :(得分:0)
因此,基本上,下面的脚本所做的是每次您运行函数“ onCLick”时,它将在列表中添加下一项。
var i = 0
var array = ['jane', 'alax', 'russell', 'max'];
var newArr = [];
//Init Vars^^
function onClick(){
console.log(array[i])
newArr.push(array[i])
if(i<newArr.length){
++i
}
};
答案 2 :(得分:0)
我们可以这样设置:将initialValue
的{{1}}指向数组的第一个元素,然后在每次连续的调用中,将0
递增1以获取下一个元素放入新数组initialValue
中,直到耗尽数组为止。
在display
数组中添加元素之后,我们只需使用display
将数组的所有值连接到一个逗号分隔的字符串中。
Array.join
let clickHandler = (function(){
const array = ['jane', 'alax', 'russell', 'max'];
let initialValue = 0;
let display = [];
function clickHandler(){
display = initialValue < array.length ? display.concat(array[initialValue++]): display;
document.getElementById("res").textContent = display.join();
}
return clickHandler;
})();