在每个循环中获取jQuery中的元素的父元素

And*_*sen 3 javascript jquery

我完全被这个难过了.我在页面上有三个元素.topic-link.

<div id="parent1">
  <a href="#" class="topic-link"></a>
</div>
<div id="parent2">
  <a href="#" class="topic-link"></a>
</div>
<div id="parent3">
  <a href="#" class="topic-link"></a>
</div>
Run Code Online (Sandbox Code Playgroud)

我可以$('.topic-link').eq(0).parent();在JS控制台中运行并返回正确的父级.但是当我遍历它们时,我每次都得到一个空对象.

$('.topic-link').each( () => {
  console.log($(this).parent());
});

// returns 3 empty objects 
Run Code Online (Sandbox Code Playgroud)

cha*_*tfl 10

箭头功能没有自己的,this所以你所拥有的并不等同于

$('.topic-link').each(function () {
  console.log($(this).parent());
});
Run Code Online (Sandbox Code Playgroud)

在你的情况下thiswindow(或document或其他任何取决于它被调用的范围)没有父dom节点

  • 不确定为什么downvote,这是正确的.https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions _"箭头函数不会创建自己的`this`上下文,所以`this`具有原始含义封闭背景."_ (4认同)