Приводится список свойств и методов интерфейса Node модели DOM. Каждый элемент списка имеет краткое описание. Удобно использовать в качестве шпаргалки свойств и методов HTML тегов тем, кто работает на чистом Javacsript.
Итак, ниже перечислены стандартные свойства и методы интерфейса Node, который наследует свойства от своего родителя EventTarget. Почему здесь описан именно этот интерфейс? Потому что он является родителем для HTML элементов, т.е. набор его свойств и методов, как правило, присутствует в тегах разметки. Это значит, что элемент, полученный, например, командой var elem = document.getElementById(‘id_name’); будет обладать всем нижеперечисленным набором, НО… . Прошу обратить внимание на оговорку «как правило», т.к. иногда могут встретиться исключения из общего правила, поскольку в некоторых наследниках не все может быть реализовано, но это весьма малые исключения из общего правила наследования. Также хочу предупредить, что под словом «стандартные» имеется ввиду, что ниже приведен не полный список, а только стандартизованные атрибуты, свойства и поведение которых однозначно описаны в Web стандартах. Еще раз подчеркиваю — ниже приводятся свойства и методы основного предка HTML тегов.
Свойства интерфейса Node
В различных скриптах и языках прогрммирования базовый URL может интерпретироваться по-разному, для HTML это понятие включает протокол, доменное имя и структуру директорий, т.е. адресная строка до последнего слеша «/».
Живой список означает, что список отслеживает изменения, происходящие в детях узла.
Если у узла нет дочерних элементов в документе, то возвращается null.
Если у узла нет дочерних элементов в документе, то возвращается null.
Node.localName – возвращает строку, определяющую локальную часть имени элемента.
Если следующего узла не существует, возвращается null.
Возвращаемая строка имени зависит от типа узла, например, узел HTMLElement возвратит наименование тега, узел Document возвратит «#document», узел Text вернет строку «#text». HTML элементы имя тега всегда возвращают в верхнем регистре.
Все возможные типы узлов представлены в конце статьи в таблице.
Содержимое возвращаемой строки зависит от типа узла.
Если такой узел не существует, возвращается null.
Если родителя нет, возвращается null.
Если родителя нет, возвращается null.
Если следующего узла не существует, возвращается null.
Node.textContent – возвращает строку с текстовым содержимым элемента и его потомков.
Методы интерфейса Node
Node.appendChild(NewChild) – добавляет объект NewChild в конец списка наследников данного узла Node.
cloneNode(bool) – возвращает копию данного узла. Если аргумент равен true, элемент клонируется со своими дочерними элементами, иначе клон будет создан без дочерних. Вновь созданный объект не будет иметь родителя (parentNode = null), пользовательские данные исходного узла также не переносятся.
Node.hasAttributes() – проверяет есть ли у узла атрибуты. Не рекомендован к употреблению, но уж дюже удобный :).
Node.compareDocumentPosition(otherNode) – сравнивает позиции данного узла и узла из другого документа.
node.contains(otherNode) – определяет, является ли данный узел предком узла otherNode.
Node.hasChildNodes()– проверяет, имеет ли данный узел дочерние элементы.
Node.insertBefore(node1, node2) – вставляет узел node1 перед узлом node2 в список дочерних данного узла.
Node.isEqualNode(node) – проверяет два узла на равенство.
Node.normalize() – производит так называемую нормализацию текстовых узлов. При нормализации метод объединяет смежные и удаляет пустые текстовые узлы.
Node.removeChild(childNode) – удаляет заданного в параметрах наследника. Метод возвращает удаленный узел.
Node.replaceChild(newNode, oldNode) – заменяет указанного наследника новым узлом. Для любителей первоисточников привожу ссылку на описание NODE в W3C (на английском, естественно).
В заключение приведу список всех возможных типов узлов с их числовыми константами.
Тип узла | Значение константы |
---|---|
ELEMENT_NODE | 1 |
ATTRIBUTE_NODE | 2 |
TEXT_NODE | 3 |
CDATA_SECTION_NODE | 4 |
ENTITY_REFERENCE_NODE | 5 |
ENTITY_NODE | 6 |
PROCESSING_INSTRUCTION_NODE | 7 |
COMMENT_NODE | 8 |
DOCUMENT_NODE | 9 |
DOCUMENT_TYPE_NODE | 10 |
DOCUMENT_FRAGMENT_NODE | 11 |
NOTATION_NODE | 12 |