Javascript 这个关键字和数组
我在一个数组中循环,听着咔嗒声。 一旦检测到单击,所有类都将被删除,然后使用此方法添加 我已经移动了这个关键字,这就是我所能想到的Javascript 这个关键字和数组,javascript,arrays,this,Javascript,Arrays,This,我在一个数组中循环,听着咔嗒声。 一旦检测到单击,所有类都将被删除,然后使用此方法添加 我已经移动了这个关键字,这就是我所能想到的 //vars for the buttons of the top carousel const tCBtn = document.querySelectorAll('.featureNav li'); //add listener for options choice for(i = 0; i < tCBtn.length; i++){ tCB
//vars for the buttons of the top carousel
const tCBtn = document.querySelectorAll('.featureNav li');
//add listener for options choice
for(i = 0; i < tCBtn.length; i++){
tCBtn[i].addEventListener('click', () => {
for(o = 0; o < tCBtn.length; o++) {
tCBtn[o].classList.remove('carousel--active');
this.classList.add('carousel--active');
}
})
}
我相信您的问题是由于使用了箭头函数而出现的。它们没有自己的
this
您可以尝试用普通函数替换箭头函数,因为普通函数有自己的this
。如果在循环完成后添加carousel--active
类,也会更好
for(let i = 0; i < tCBtn.length; i++){
tCBtn[i].addEventListener('click',
function() {
for(let o = 0; o < tCBtn.length; o++) {
tCBtn[o].classList.remove('carousel--active');
}
this.classList.add('carousel--active');
}
);
}
for(设i=0;i
请参阅。您应该查看该代码的格式-您缺少了一个括号。嘿,安迪,谢谢您的提醒。我对格式做了一些改进,并添加了一个MDN链接。但找不到缺少的括号。
for(let i = 0; i < tCBtn.length; i++){
tCBtn[i].addEventListener('click',
function() {
for(let o = 0; o < tCBtn.length; o++) {
tCBtn[o].classList.remove('carousel--active');
}
this.classList.add('carousel--active');
}
);
}