DOM | Миксин ParentNode

DOM | Миксин ParentNode

Чтобы «преобразовать узлы в узел» (convert nodes into a node) с учетом узлов nodes и документа document, выполните следующие действия:

1. Пусть узел node будет нулевым (null).
2. Замените каждую строку в узлах nodes новым узлом Text, данными которого является строка, а узлом документа является document.
3. Если узлы nodes содержат один узел, установите node на этот узел.
4. В противном случае установите для узла node новый DocumentFragment, чей документ узла является документом document, а затем добавьте к нему каждый узел в узлах nodes, если таковые имеются.
5. Верните node

 

IDL

interface mixin ParentNode {
   [SameObject] readonly attribute HTMLCollection children;
   readonly attribute Element? firstElementChild;
   readonly attribute Element? lastElementChild;
   readonly attribute unsigned long childElementCount;

   [CEReactions, Unscopable] undefined prepend((Node or DOMString)... nodes);
   [CEReactions, Unscopable] undefined append((Node or DOMString)... nodes);
   [CEReactions, Unscopable] undefined replaceChildren((Node or DOMString)... nodes);

   Element? querySelector(DOMString selectors);
   [NewObject] NodeList querySelectorAll(DOMString selectors);
};
Document includes ParentNode;
DocumentFragment includes ParentNode;
Element includes ParentNode;

 

 

Для веб-разработчиков (ненормативный)

collection = node . children

Возвращает детей элементы (детей).

element = node . firstElementChild

Возвращает первого ребёнка, который является элементом, в противном случае — null.

element = node . lastElementChild

Возвращает последнего ребёнка, который является элементом, в противном случае — null.

node . prepend(nodes)

Вставляет узлы nodes перед первым ребёнком узла node, заменяя строки в узлах nodes эквивалентными текстовыми узлами Text.

Выбрасывает исключение DOMException «HierarchyRequestError«, если нарушаются ограничения дерева узлов.

node . append(nodes)

Вставляет узлы nodes после последнего ребёнка узла node, заменяя строки в узлах nodes эквивалентными текстовыми узлами Text.

Выбрасывает исключение DOMException «HierarchyRequestError«, если нарушаются ограничения дерева узлов.

node . replaceChildren(nodes)

Замените всех детей узла node узлами nodes, заменяя строки в узлах nodes эквивалентными узлами Text.

Выбрасывает исключение DOMException «HierarchyRequestError«, если нарушаются ограничения дерева узлов.

node . querySelector(selectors)

Возвращает первый элемент, являющийся потомком узла node, соответствующего selectors.

node . querySelectorAll(selectors)

Возвращает все элементы потомки узла node, соответствующие селекторам selectors.

 

Получатель атрибута children должен возвращать коллекцию HTMLCollection, основанную на этом this совпадающем только элементом ребёнка.

Получатель атрибута firstElementChild должен возвращать первого ребёнка, который является элементом, в противном случае — null.

Получатель атрибута lastElementChild должен возвращать последнего ребёнка, который является элементом, в противном случае — null.

Получатель атрибута childElementCount должен возвращать количество детей этого this, которые являются элементами.

 

При вызове метода prepend(nodes) необходимо выполнить следующие шаги:

1. Пусть узел node будет результатом преобразования узлов в узел с учетом узлов nodes и документа узла этого this.
2. Предварительно вставьте node в этот this перед первым ребёнком этого this.

 

При вызове метода append(nodes) необходимо выполнить следующие шаги:

1. Пусть узел node будет результатом преобразования узлов в узел с учетом узлов nodes и документа узла этого this.
2. Добавьте узел node к этому this.

 

При вызове метода replaceChildren(nodes) необходимо выполнить следующие шаги:

1. Пусть узел node будет результатом преобразования узлов в узел с учетом узлов nodes и документа узла этого this.
2. Убедитесь, что узел node действителен перед вставкой в этот this до нуля(null).
3. Замените все узлом node внутри этого this.

 

Метод querySelector(selectors) при вызове должен возвращать первый результат выполнения сопоставления области видимости строковых селекторов selectors для этого this, если результат не является пустым списком, и null в противном случае.

Метод querySelectorAll(selectors) при вызове должен возвращать статический результат выполнения сопоставления области видимости строковых селекторов selectors для этого this.

 

Ссылки

DOM стандарт — https://efim360.ru/dom/

Читайте перевод полной версии стандарта «объектной модели документа», чтобы ознакомиться со всеми концепциями и интерфейсами.

DOMLiving Standardhttps://dom.spec.whatwg.org

Читайте официальную документацию живого стандарта «объектной модели документа», чтобы быть в курсе последних изменений.