javascript – jQuery .each()函数与ES6箭头函数

前端之家收集整理的这篇文章主要介绍了javascript – jQuery .each()函数与ES6箭头函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > $(‘elems’).each() with fat arrow2
我有这个ES6代码,在我将它与Babel一起编译到ES5之后,这个里面.each的回调变得没有定义.如何解决这个问题?
let mediaBoxes = $(".now-thumbnail");
let titles = [];
mediaBoxes.each(() => {
      let obj = {
              index: i,title: $(this).find(".now-thumbnail-bottomtext").text().trim()
           };
  titles.push(obj);
});

解决方法

这是因为在箭头功能上的意思是不一样的.

this

Arrow functions capture the this value of the enclosing context,

each()函数将元素作为第二个参数传递给回调.

但是更适合您的解决方案也是使用.map()而不是each()

let mediaBoxes = $(".now-thumbnail");
let titles = mediaBoxes.map((i,el) => {
  return {
    index: i,title: $(el).find(".now-thumbnail-bottomtext").text().trim()
  };
}).get();

猜你在找的jQuery相关文章