当前位置: 首页 > 知识库问答 >
问题:

获取jQuery每个循环中元素的父级[重复]

齐兴运
2023-03-14

我完全被这件事难住了。我在页面上有三个元素,其中一个类是。主题链接

<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>

我可以在JS控制台中运行$('. tope-link'). eq(0).家长();并返回正确的家长。但是当我迭代它们时,每次都会得到一个空对象。

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

// returns 3 empty objects 

共有2个答案

马泰
2023-03-14

来自@charlietfl的回答:你会得到这种行为,因为箭头函数不会绑定自己的this

要继续使用箭头函数,解决方法是使用中的第二个参数。each(),对象/数组的值。

示例(由于arguments变量也未绑定,因此需要参数):

$('.topic-link').each( (∅, value) => {
  console.log($(value).parent());
});
薛焱
2023-03-14

箭头函数没有自己的,因此您所拥有的并不等同于

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

在您的例子中,这个是没有父dom节点的窗口(或者文档,或者任何依赖于调用它的范围的东西)

 类似资料:
  • 本文向大家介绍JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法,包括了JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法的使用技巧和注意事项,需要的朋友参考一下 最近工作中总遇到取各种父啊子啊兄弟姐妹啊,每次都得查,这次整理个全乎的~ 先给大家上干货: 【js的获取方式】 【jQuery的获取方式】

  • 问题内容: 我有一个foreach循环,我想看看循环中是否存在下一个元素,以便可以将当前元素与下一个元素进行比较。我怎样才能做到这一点?我已经阅读了有关当前和下一个功能的信息,但我不知道如何使用它们。 提前致谢 问题答案: 一种独特的方法是反转阵列 然后 循环。这同样适用于非数字索引数组: 如果您仍然对使用和功能感兴趣,可以这样做: #2可能是最好的解决方案。注意,比较数组中的最后两项后,将停止循

  • 本文向大家介绍使用jquery/js获取iframe父子级、同级获取元素的方法,包括了使用jquery/js获取iframe父子级、同级获取元素的方法的使用技巧和注意事项,需要的朋友参考一下 在web开发中,经常会用到iframe,难免会碰到需要在父窗口中使用iframe中的元素、或者在iframe框架中使用父窗口的元素 js 在父窗口中获取iframe中的元素 1、 格式:window.fram

  • 我在forEach循环中有一个select元素列表,并且只想要位于索引0的第一个元素。 这个元素将有一个不同的方法,我试图防止重复的代码,我不想只为这个元素创建另一个方法,我试图解决它,但似乎我不成功。

  • 问题内容: 这应该真的很简单,但是我遇到了麻烦。如何获得子元素的父div? 我的HTML: 我的JavaScript: 我本来以为还是会工作,但我不断收到错误。请注意,已定义,但不是其中的某些变量。 有任何想法吗? PS我希望尽可能避免使用jQuery。 问题答案: 您正在寻找,其继承自:

  • 问题内容: 我希望获得选定元素的整个html,而不仅仅是它的内容。.html()根据文档使用javascripts innerHTML()方法。HTML: 使用将仅返回段落元素。我想获取整个元素的html,如下所示: 我不能使用.parent,因为这将返回两个子div的html。 问题答案: 您可以克隆它以获取全部内容,如下所示: 或使其成为一个插件,通常倾向于将其称为“ outerHTML”,如