Тег: nodeName и tagName



Получив DOM-узел, мы можем узнать имя его тега из свойств nodeName и tagName.



Есть ли какая-то разница между tagName и nodeName?



Да, она отражена в названиях свойств, но не очевидна.



- Свойство tagName есть только у элементов Element.

- Свойство nodeName определено для любых узлов Node:

- - для элементов оно равно tagName.

- - для остальных типов узлов (текст, комментарий и т.д.) оно содержит строку с типом узла.



Другими словами, свойство tagName есть только у узлов-элементов (поскольку они происходят от класса Element), а nodeName может что-то сказать о других типах узлов.



Например, сравним tagName и nodeName на примере объекта document и узла-комментария (см. картинку выше).



#браузер #документ #свойства_узлов