Цикл jQuery возвращает только последний элемент массива - PullRequest
1 голос
/ 03 июля 2019

Я получаю только последний элемент массива, который я зацикливаю, который находится внутри функции.

Я пробовал базовый цикл for и цикл forEach, и ничего не работает.

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

Каждый li в DOM должен иметь уникальный заголовок, первым должен быть foo, второй столбец и т. Д.

В настоящее время все li имеютназвание боп.

Ответы [ 2 ]

0 голосов
/ 03 июля 2019

Я понял это.

    (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 каждый раз, когда он зацикливался. Поэтому вместо этого я просто перебираю созданный мной массив и устанавливаю цель и сообщение с интерполяцией.

0 голосов
/ 03 июля 2019

Просто измените свой цикл forEach,

$('li').each((i, elm)=>{
  $(this).attr('titles', `i am ${titles[i]}`);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...