appendChild внутри недавно созданного div - PullRequest
0 голосов
/ 20 мая 2018

Я не могу понять, почему я получаю эту ошибку:

Uncaught TypeError: Невозможно прочитать свойство 'appendChild' из неопределенного

Вот мой код:

//create new div element, append it to the body, give it an ID and a Class.
const container_clause_1 = document.createElement("div");
document.body.appendChild(container_clause_1);
container_clause_1.setAttribute("id", "container_clause_1");
container_clause_1.classList.add("cc1");

console.log(container_clause_1);
//returns <div id="container_clause_1" class="cc1></div>"

const cClause1 = document.getElementById("container_clause_1");

console.log(cClause1);
//returns <div id="container_clause_1" class="cc1></div>"

const right_clause_1 = document.createElement("div");
console.log(right_clause_1); //returns <div></div>

document.cClause1.appendChild(right_clause_1); //Error occurs here!

Я не понимаю, что не определено в этой ситуации.cClause1 это определение.right_clause_1 также определен.Конечно, на данный момент это пустой div, но это то, что я пытаюсь сделать - добавить div, а затем я могу добавить класс и id и т. Д.

Кроме того, я не вижу опечаток.

Кроме того, если я заменю document.cClause1.appendChild(right_clause_1); на document.body.appendChild(right_clause_1);, он будет работать нормально.За исключением того, что я не хочу это внутри тела, а скорее, внутри контейнера container_clause_1.

Я не могу использовать JQuery для этого.«Почему бы и нет» не совсем уместно в вопросе.У меня есть причины.Просто поймите, что я не могу использовать JQuery.


Ну, это было так очевидно - после того, как все начали указывать на то, что я сделал неправильно!Спасибо за ответы!

Еще одна вещь, на которую мне это указало:

Я могу исключить переменную cClause и просто использовать container_clause_1

, поэтому мой кодкороче!

const container_clause_1 = document.createElement("div");
document.body.appendChild(container_clause_1);
container_clause_1.setAttribute("id", "container_clause_1");
container_clause_1.classList.add("cc1");

const right_clause_1 = document.createElement("div");
container_clause_1.appendChild(right_clause_1);
right_clause_1.setAttribute("id", "right_clause_1");
right_clause_1.classList.add("r1");

1 Ответ

0 голосов
/ 20 мая 2018

Почему есть «документ».в этой строке?

document.cClause1.appendChild(right_clause_1);

Конечно, вам нужно только:

cClause1.appendChild(right_clause_1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...