Ошибка "FAILED to execute appendchild on node parameter 1 is not of type node"

this.onload = () => {
    let can = document.querySelector("#can");
    for (let i = 0; i < 80; i++) {
        let c;
        circle = document.createElement("div");
        circle.classList.add("circle");
        can.appendChild("circle");
    }
}

Я пытаюсь добавить класс circle на класс can, но отображается ошибка

FAILED to execute appendchild on node parameter 1 is not of type node


Ответы (1 шт):

Автор решения: Gonzo

Неверное использование метода .appendChild. И вообще не верная формулировка. can у вас не "класс", а DOM элемент:

let can = document.querySelector("#can")

А метод Node.appendChild добавляет дочерний DOM элемент в тот DOM элемент на котором он вызван. Т.е. не понятно о чем идет речь. Если вам нужно добавить новый DOM элемент внутрь элемента "can" то используйте метод Node.appendChild и передавайте туда DOM элемент который необходимо добавить.

can.appendChild(document.createElement('div'))

А если к элементу can необходимо добавить именно класс "circle" то можно использовать Node.classlist:

can.classlist.add("circle")
→ Ссылка