Как узнать, есть ли родитель у элемента?

У меня есть необходимость при клике на элемент добавлять родительскому элементу новый класс. Как добавлять классы я знаю, а вот как найти родительский элемент? Будет круто, если ещё и можно будет отслеживать тэг родительского элемента


Ответы (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)
→ Ссылка