Ich habe eine einfache forEach-Schleife, in der ich versuche, Listenelemente an eine ungeordnete Liste anzufügen. Wenn ich das Skript ausführe, sehe ich nur ein Listenelement hinzugefügt. Kann jemand erklären, warum das passiert?Warum sollten Elemente, die nicht angehängt werden, in einer ForEach-Schleife aufgelistet werden?
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>
das Protokoll in der Funktion zurückkehrt, dass es zwei Objekte in dem Array.
' ' ist nicht HTML. –
Quentin
benutzerdefinierte Elemente sind jetzt erlaubt (leider) aber das ist nicht wie man ein in js erstellen. – rlemon
@Quentin ist es, wenn Sie es als ein DOM-Element erstellen –