DOM | Миксин ChildNode

DOM | Миксин ChildNode

IDL

interface mixin ChildNode {
   [CEReactions, Unscopable] undefined before((Node or DOMString)... nodes);
   [CEReactions, Unscopable] undefined after((Node or DOMString)... nodes);
   [CEReactions, Unscopable] undefined replaceWith((Node or DOMString)... nodes);
   [CEReactions, Unscopable] undefined remove();
};
DocumentType includes ChildNode;
Element includes ChildNode;
CharacterData includes ChildNode;

 

 

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

node . before(…nodes)

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

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

node . after(…nodes)

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

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

node . replaceWith(…nodes)

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

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

node . remove()

Удаляет узел node.

 

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

1. Пусть родитель parent будет родителем этого this.
2. Если parent имеет значение null, вернитесь.
3. Пусть viablePreviousSibling будет первым предшествующим родственником этого this не в узлах nodes, в противном случае - null.
4. Пусть узел node будет результатом преобразования узлов в узел, учитывая узлы nodes и документ узла этого this.
5. Если viablePreviousSibling имеет значение null, установите для него значение первого ребёнка родителя parent, а в противном случае - значение следующего родственника  viablePreviousSibling.
6. Предварительно вставьте узел node в родителя parent перед viablePreviousSibling.

 

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

1. Пусть родитель parent будет родителем этого this.
2. Если parent имеет значение null, вернитесь.
3. Пусть viableNextSibling будет первым следующим родственником этого this, не находящимся в узлах nodes, в противном случае - null.
4. Пусть узел node будет результатом преобразования узлов в узел, учитывая узлы nodes и документ узла этого this.
5. Предварительно вставьте узел node в родителя parent перед viableNextSibling.

 

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

1. Пусть родитель parent будет родителем этого this.
2. Если parent имеет значение null, вернитесь.
3. Пусть viableNextSibling будет первым следующим родственником этого this, не находящимся в узлах nodes, в противном случае - null.
4. Пусть узел node будет результатом преобразования узлов в узел, учитывая узлы nodes и документ узла этого this.
5. Если родитель этого this является parent, замените this на узел node в родителе parent.
   Примечание! Этот this может быть вставлен в узел node.
6. В противном случае предварительно вставьте узел node в родителя parent перед viableNextSibling.

 

При вызове метода remove() необходимо выполнить следующие действия:

1. Если родитель этого this имеет значение null, вернитесь.
2. Удалите этот this.

 

Ссылки

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

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

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

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