有没有 for 循环的替代方法?

时间:2021-04-18 12:12:06

标签: javascript html jquery

我在这里有一个函数,它将把每个 li 元素的 innerHTML 放到一个数组中

let li = document.getElementsByTagName("li");
let array = [];
for (var i = 0; i < li.length; i++) {
  array.push(li[i].innerHTML);
}

我想知道是否有任何替代或更快的方法来做到这一点

我尝试使用像这样的扩展运算符,但它只显示元素和 idk 如何获取每个 li 的 innerHTML

let array = [...li];

2 个答案:

答案 0 :(得分:4)

您可以像这样使用 map() 方法:

let lis = document.getElementsByTagName("li");
let array = [...lis].map(e => e.innerHTML);
console.log(array);
<ul>
  <li>SomeThing</li>
  <li>SomeThing</li>
  <li>SomeThing</li>
  <li>SomeThing</li>
</ul>

答案 1 :(得分:2)

// Simple map function over the li elements
// Also use const on both variables ('li' and 'array') - as they are not being changed
const li = document.getElementsByTagName("li");
const array = [...li].map((e) => e.innerHTML);