首页 > 解决方案 > $(this) 返回未定义

问题描述

为什么 $(this) 返回未定义而不是单击的元素?

我已经用 event.target 替换了 $(this),它工作正常,但想了解 $(this) 的问题,谢谢!

$('.nav-search-options').on('click', (event) => {

  console.log($(this))

})

标签: javascriptjquery

解决方案


@JamesJavascript。Justinas 在关于箭头功能的评论中所说的部分正确 - 尽管还有更多内容要添加。

箭头函数没有自己的“this”,而是从其父作用域绑定一个。

要明白我的意思,试试这个,看看它会返回窗口对象:

const myFunction = () => {
  console.log(this);
};

// call it
myFunction();

在此处阅读有关它的更多信息 - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions


推荐阅读