Javascript 带有ES6箭头函数的jQuery.each()函数
我有这个ES6代码,当我用Babel编译成ES5后,Javascript 带有ES6箭头函数的jQuery.each()函数,javascript,jquery,ecmascript-6,babeljs,Javascript,Jquery,Ecmascript 6,Babeljs,我有这个ES6代码,当我用Babel编译成ES5后,这个在里面。每个的回调都变成未定义的。如何解决此问题 let mediaBoxes = $(".now-thumbnail"); let titles = []; mediaBoxes.each(() => { let obj = { index: i, title: $(this).find(".now-thumbnail-bottomtext").text().tri
这个在里面。每个的回调都变成未定义的。如何解决此问题
let mediaBoxes = $(".now-thumbnail");
let titles = [];
mediaBoxes.each(() => {
let obj = {
index: i,
title: $(this).find(".now-thumbnail-bottomtext").text().trim()
};
titles.push(obj);
});
我的解决方案是根本不使用这个
,而是使用传递给回调函数的变量。第一个是索引,第二个是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);
});
这是因为此
的平均值在箭头函数中不同
箭头函数捕获封闭上下文的此值
函数将元素作为第二个参数传递给回调函数
但对你来说,一个更合适的解决方案是也使用而不是
我也这么想<代码>让标题=$('.now缩略图').map((索引,元素)=>({index:index,title:$(元素).find(“.now缩略图底部文本”).text().trim())).get()
@Tushar如果内容太大,那么我想把它分成一个块。我还想补充一点,这里不需要箭头函数,只是为了简洁的语法,没有返回任何内容。当$(this)
将指向正确的元素时,可以使用匿名函数。@Tushar我会在心跳中向上投票。我认为箭在这里绝对没有好处。即使简洁是目标,编写function()
的字符数也与(i,el)=>
let mediaBoxes = $(".now-thumbnail");
let titles = mediaBoxes.map((i, el) => {
return {
index: i,
title: $(el).find(".now-thumbnail-bottomtext").text().trim()
};
}).get();