gpt4 book ai didi

javascript - 为什么在 forEach 循环中不会追加列表项?

转载 作者:行者123 更新时间:2023-12-02 14:30:57 25 4
gpt4 key购买 nike

我有一个简单的 forEach 循环,其中我尝试将列表项附加到无序列表中。但是,当我运行该脚本时,我只看到添加了一个列表项。谁能解释一下为什么会发生这种情况?

JS

let bookElement = document.getElementsByClassName("book");
let navElement = document.getElementsByTagName("nav")[0];
let unorderedList = document.createElement("UL");
let listItems = document.createElement("LI");
let book1 = new Book();
let book2 = new Book();
let booksArray = [book1, book2];

createNavigation(booksArray, navElement, unorderedList, listItems);

function createNavigation(booksArray, navElement, unorderedList, listItems){
console.log(booksArray)
booksArray.forEach(function(book){
unorderedList.appendChild(listItems);
})
navElement.appendChild(unorderedList);
}

HTML

<body>
<nav></nav>
<div class="book"></div>
</body>

函数中的日志返回数组中有两个对象。

最佳答案

您只能创建一个列表项。

然后将其附加到多个位置。

由于一个元素不能同时存在于多个位置,因此每次追加它(在第一个元素之后)时,您都会移动它。

在循环内使用 let listItems = document.createElement("LI");

关于javascript - 为什么在 forEach 循环中不会追加列表项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37835172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com