Как узнать, есть ли родитель у элемента?
У меня есть необходимость при клике на элемент добавлять родительскому элементу новый класс. Как добавлять классы я знаю, а вот как найти родительский элемент? Будет круто, если ещё и можно будет отслеживать тэг родительского элемента
Ответы (3 шт):
Автор решения: vsemozhetbyt
→ Ссылка
Если я правильно понял, вам нужно свойство Node.parentElement, а для определения тега — Element.tagName.
Автор решения: Igor
→ Ссылка
document.getElementById("test").addEventListener("click", function() {
console.log(this.parentNode != null, this.parentNode.tagName);
});
<div>
<button id="test">Click</button>
</div>
При клике на картинку или на текст возвращает undefined,
document.getElementById("test").addEventListener("click", () => {
console.log(this.parentNode);
});
<div>
<button id="test">Click</button>
</div>
У параметра e (Event) нет свойства parentNode.
console.log(e.target.parentNode.tagName);
Автор решения: Aziz Umarov
→ Ссылка
document.body.parentNode; // возвращает <html> элемент
document.body.parentElement; // возвращает <html> элемент
document.documentElement.parentNode; // возвращает Document node
document.documentElement.parentElement; // возвращает null (<html> не имеет родительского node)