создавать вложенные элементы с именами классов в PhantomJS - PullRequest
0 голосов
/ 19 октября 2018

Я создаю элемент внутри элемента для целей тестирования:

const item = document.createElement("div");
// item.className("item");
item.className = "item";
const content = document.getElementsByClassName("item").appendChild("div");
content.className = "content";

Однако я получаю сообщение об ошибке:

undefined не является конструктором (оценивает 'document.getElementsByClassName ("item"). appendChild ("div") '

Может кто-нибудь помочь?

PS Спасибо за все отзывы!

Ответы [ 3 ]

0 голосов
/ 19 октября 2018

Осенью 2018 года более гибкой практикой является использование classList свойства элемента HTML

element.classList.add('item');

Если я правильно понял вашу логику, окончательный код будет следующим:

const item = document.createElement('div');
item.classList.add('item');
const content = document.createElement('div');
content.classList.add('content');
item.appendChild(content);
0 голосов
/ 19 октября 2018

Вы можете использовать classList вместо className, поскольку позже будут удалены все другие классы этого элемента.

Во-вторых, document.getElementsByClassName("item").appendChild("div"); не будет работать, так как document.getElementsByClassName возвращает список узлов.Вам нужно получить индекс для добавления элемента

const item = document.createElement("div");
item.classList.add("item");
const content = document.getElementsByClassName("item")[0].appendChild("div");
content.className = "content";
0 голосов
/ 19 октября 2018

Это довольно просто.className является собственностью

item.className = "item";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...