Classlist.добавить более коротким способом?

#javascript

#javascript

Вопрос:

Эй, я должен присвоить некоторым элементам списка их собственные классы. Но мой способ сделать это немного перегибает палку. Есть ли способ сделать это более чистым с помощью цикла или чего-то подобного?

Javascript:

 function classAdden() {
    var element = document.querySelectorAll("LI");
    element[0].classList.add("javascript"); // Javascript
    element[1].classList.add("tinkiewinkie"); // Tinkie Winkie
    element[2].classList.add("dipsi"); // Dipsi
    element[3].classList.add("php"); // PHP
    element[4].classList.add("lala"); // Lala
    element[5].classList.add("po"); // Po
    element[6].classList.add("jquery"); // jQuery
}
  

Комментарии:

1. Да, вы могли бы сделать это короче, используя массив и цикл, вы уже пробовали это?

2. @CertainPerformance Я попробовал зацикливание, но не смог заставить его работать. Вот почему я задаю этот вопрос.

3. Использовать jQuery было бы проще, я думаю.

4. @J.Coderino можете ли вы показать код с циклом, который вы пробовали?

Ответ №1:

Сохраните значения в array и используйте forEach()

 const arr = ["javascript","tinkiewinkie","dipsi","php","lala","po","jquery"]; 
function classAdden() {
     const element = document.querySelectorAll("LI"); 
     arr.forEach((a,i) => element[i].classList.add(a)); 
}
  

Комментарии:

1. Короче: const arr = ["javascript","tinkiewinkie","dipsi","php","lala","po","jquery"]; function classAdden() { const element = document.querySelectorAll("LI"); arr.forEach((a,i) => element[i].classList.add(a)); }

Ответ №2:

Может быть:

 const names = ["javascript", ..., "jquery"];
for (let i = 0; i < names.length; i  )
    element[i].classList.add(names[i]);
  

?