jQuery循环仅返回数组的最后一个元素

时间:2019-07-02 23:58:16

标签: jquery loops closures

我只收到函数中遍历的数组的最后一个元素。

我已经尝试了基本的for循环和forEach循环,但是没有任何作用。

(function(d,$){
  let titles = ["foo", "bar", "baz", "bop"]
  $('li').forEach((ele, i)=>{
    $("li").attr('titles', `i am ${titles[i]}`)
  })
})(dojo, dojo.query);

DOM中的每个li应该具有唯一的标题,第一个应该是foo,第二个应该是小节,依此类推。

当前所有li的标题都是bop。

2 个答案:

答案 0 :(得分:0)

只需更改forEach循环,

$('li').each((i, elm)=>{
  $(this).attr('titles', `i am ${titles[i]}`);
});

答案 1 :(得分:0)

我知道了。

    (function(d,$){
  let titles = ["foo", "bar", "baz", "bop"]
  titles.forEach((ele, i)=>{
    $(`li.${titles[i]}`).attr('titles', `i am ${titles[i]}`)
  })
})(dojo, dojo.query);

问题是每次循环时我都要设置每个li。因此,相反,我只是遍历我创建的数组,并使用插值设置目标和消息。