Ich habe versucht, eine Ausgabe meines Arrays zu erhalten.

document.addEventListener("DOMContentLoaded", function() {
document.getElementById('button').addEventListener('click', function() {
    var sidebar = document.getElementById('sidebar');

    var isExpanded = false;
    sidebar.classList.forEach(function(className) {
        if (className == 'expand') {
            isExpanded = true;
        }
    });

    if (isExpanded) {
        sidebar.classList.remove('expand');
    } else {
        sidebar.classList.add('expand');
    }

    isExpanded = !isExpanded;



    var contentwrapper = document.getElementById('content-wrapper');


    if (isExpanded) {
        contentwrapper.classList.add('padding-offset-2');

    } else {
        contentwrapper.classList.remove('padding-offset-2');
    }


    var topics = document.getElementById("content-wrapper").children;
    console.log(topics);
    topics.forEach(function(topic) {

        console.log(topic);

    })

});

Ich erhalte die Fehlermeldung, dass topic.forEach keine Funktion ist. Kann mir jemand dabei helfen? Ich habe keine Ahnung, was ich falsch mache. Ich versuche JS atm zu lernen. :) :)

-1
Kravos 18 Jän. 2019 im 12:34

3 Antworten

Beste Antwort
var topics = document.getElementById("content-wrapper").children;

topics ist eine HTMLCollection, kein Array und hat daher keine forEach () -Methode. Sie müssen es in ein Array konvertieren zuerst.

1
Cinn 18 Jän. 2019 im 09:38

Für jeden würde das nicht funktionieren. Versuchen Sie, class für den Selektor zu verwenden.

$.each( topic, function( key, value ) {
  alert( key + ": " + value );
 // do your stuff here
});

ODER

$(".content-wrapper").each(function() {
  // do your stuff here
});
0
Ashutosh 18 Jän. 2019 im 09:40
 var topics = document.getElementById("content-wrapper").children;
   console.log(topics);

Themen geben Sammlung von HTMLCollection, Konvertieren Sie es in Array.

Siehe Die effizienteste Methode zum Konvertieren einer HTMLCollection in ein Array

  var topics= [].slice.call(topics);
1
sridhar.. 18 Jän. 2019 im 09:38