javascript - this.innerText 显示未定义

标签 javascript frontend

在这种情况下,我尝试使用关卡菜单,但是 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 绑定(bind)不会改变它在箭头函数之外的内容,您需要将 this 绑定(bind)到 item 元素这会导致触发 click 事件。

关于javascript - this.innerText 显示未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66376223/

相关文章:

javascript - Chrome DevTools 不允许我在某些行上设置断点

javascript - JQuery 显示更多/更少示例

html - 创建一个领英风格的个人资料栏

javascript - 从日期到 Angular js中的日期验证

javascript - React Redux 行为异常

javascript - 对象传播错误导致没有消息属性

javascript - 为什么有时异步代码中的错误会使 node.js 服务器崩溃

java - Netbeans 中针对 Maven Web 应用程序的 UI 推荐

html - 如何在CSS中制作这样的标题?

javascript - Object.keys 在 typescript 中使用数字