javascript - 带有 ES6 箭头函数的 jQuery .each() 函数

标签 javascript jquery ecmascript-6 babeljs

我有这个 ES6 代码,在我用 Babel 将其编译为 ES5 后,this里面.each的回拨变成undefined 。我该如何解决这个问题?

let mediaBoxes = $(".now-thumbnail");
let titles = [];
mediaBoxes.each(() => {
      let obj = {
              index: i,
              title: $(this).find(".now-thumbnail-bottomtext").text().trim()
           };
  titles.push(obj);
});

最佳答案

我的解决方案是根本不使用this,而是使用传递给回调函数的变量。第一个是索引,第二个为您提供 DOM 元素本身。

let mediaBoxes = $('.now-thumbnail');
let titles = [];
mediaBoxes.each((index, element) => {
  let obj = {
    index: index,
    title: $(element).find('.now-thumbnail-bottomtext').text().trim(),
  };
  titles.push(obj);
});

关于javascript - 带有 ES6 箭头函数的 jQuery .each() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36638002/

相关文章:

javascript - JS中的全局变量有害吗?

javascript - 将调用放入队列并等待更新 React.js 中的状态

javascript - 如果使用 Jquery 单击 td,则为表内的所有 tr 元素着色

javascript - 如何在 jquery 中对未命名函数调用 .call()?

javascript - 为什么 jQuery remove 在下拉列表中添加了一个额外的元素?

javascript - 如何在 React Redux 中获取状态的先前值

javascript - Vue.js:如何在单个文件组件中指定 Prop ?

javascript - ReactJS,如何从 onChange 下拉列表更改表单类型

javascript - ESlint 编译 es6 导入/导出语句失败

javascript - 浏览器在上传到服务器时找不到背景图像?