@gidra666

Не удается получить дочерний элемент родителя, в чем проблема?

var parent = this.closest('div').className;
console.log("parent: " + parent);

var child = parent.children(".b24-form-control-label"); 
console.log("children: " + child);


Результат:

parent: b24-form-control-container b24-form-control-icon-after

Uncaught TypeError: parent.children is not a function
  • Вопрос задан
  • 90 просмотров
Решения вопроса 2
mizutsune
@mizutsune
Frontend Developer
Свойство children хранит в себе псевдомассив дочерних элементов. Дочерними элементами считаются все теги, которые непосредственно расположены внутри блока. Подробнее можно прочитать в документации.

Ну, а так... интересная конечно строка:

var parent = this.closest('div').className;

Как вы думаете что содержит в себе переменная parent? HTMLElement или строку содержащую селектор класса выбранного элемента?

В общем правильнее сделать так:

const parent = this.closest('.parent-selector');
const child = parent.querySelector(".b24-form-control-label");


И вообще, пора бы уже использовать const/let вместо устаревшего var.
Ответ написан
Комментировать
nazares
@nazares
Software Engineer
потому что Element.children is a property but not a function
https://developer.mozilla.org/en-US/docs/Web/API/E...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы