Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery循环只返回数组的最后一个元素_Jquery_Loops_Closures - Fatal编程技术网

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

jQuery循环只返回数组的最后一个元素,jquery,loops,closures,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都应该有一个唯一的标题,第一个标题应

我只接收在函数中循环的数组的最后一个元素

我尝试了一个基本的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,第二个标题应该是bar,依此类推


目前所有的
li
都有一个bop的标题。

只需更改每个循环的名称

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

只需更改每个循环

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

    (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。因此,我只是在我创建的数组中循环,并用插值设置目标和消息。

我找到了答案

    (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。因此,我只是在我创建的数组中循环,并使用插值设置目标和消息。

$('li')。attr()影响每次迭代的所有元素。改为使用
$(this).attr()
$('li').attr()
影响每次迭代的所有元素。改用
$(this).attr()