jQuery循环只返回数组的最后一个元素
我只接收在函数中循环的数组的最后一个元素 我尝试了一个基本的for循环和forEach循环,但没有任何效果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都应该有一个唯一的标题,第一个标题应
(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()
。