this.innerText显示未定义
在这种情况下,我尝试执行级别菜单,但是 this.innerText 不起作用
function levelJump() {
console.log(this);// Window {window: Window, self: Window, document: document, name: "", location: Location, …}
level_index = this.innerHTML;
console.log(this.innerText); // undefined
goToLevel(level_index);
}
const levelJumperButtons = document.querySelectorAll('.level-jumper');
console.log(levelJumperButtons[10].innerText); // 11
levelJumperButtons.forEach((item) => {
item.addEventListener('click', () => levelJump());
});
回答
item.addEventListener('click', () => levelJump());应该是:item.addEventListener('click', levelJump);因为在箭头函数中,this绑定不会改变它在箭头函数之外的内容,您需要this绑定到item导致click事件被触发的元素。