我在这里有一个函数,它将把每个 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];
答案 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);