07 Модуль - DOM. События -- 03 Создание и удаление узлов Flashcards

1
Q

Какой метод мы используем для создания элемента HTML ? И как работает ?

A

document.createElement(tagName)
Создает HTML-элемент по указаному имени тега и возвращает ссылку на него как результат своего выполнения. tagName это строка, указывающая тип создаваемого элемента. Элемент создается в памяти, в DOM его еще нет.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

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

A

parentElem.appendChild(elem)
Добавляет elem в конец дочерних элементов parentElem.
Метод appendChild() может добавлять только один элемент. Если нужно добавить несколько элементов лучше использовать метод append().(Важно помнить, что порядок написания имеет значение)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Для чего использует метод parentElem.insertBefore(elem, nextSibling) ?

A

Он добавляет elem в коллекцию детей parentElem, перед элементом nextSibling. Если вторым аргументом указать null, тогда insertBefore сработает как appendChild.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Что делает метод elem.remove()

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Что делает метод parent.removeChild(elem) ?

A

Старый метод работающий во всех браузерах, позволяет удалить ребенка elem из родителя parent. В таком случае необходимо иметь ссылку как на родителя так и на ребенка.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Метод, который нужен для того чтобы клонировать элемент это?

A

elem.cloneNode(true)
Элемент можно клонировать и работать с этим клоном (точной копией). Так же мы могли бы создать новый элемент и работать с ним, но в ряде случаев гораздо эффективнее клонировать существующий, а потом изменить текст внутри.
Если вызвать с аргументом true, тогда создаст глубокую копию элемента – вместе с атрибутами, включая все поддерево. Если же вызвать с аргументом false, то копия будет сделана без дочерних элементов.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

elem.innerHTML

A

свойство, позволяет получить содержимое элемента, включая теги, в виде строки.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Что происходит Repaint?

A

Происходит когда изменения произошли в стилях элемента влияющих на внешний вид, но не на геометрию. Например opacity, background-color, visibility и outline. Браузер отрисовывает его заново, с учётом нового стиля. Это дорогая операция, потому что браузер проверяет видимость всех остальных узлов в дереве, один или более могут оказаться скрыты под изменившим внешний вид.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Что знаешь про Reflow?

A

Происходит когда изменения затрагивают содержимое, структуру документа, положение элементов. Идет пересчет позиционирования и размеров всех элементов, что ведет к перерисовке части или всего документа. Изменения размера одного родительского контейнера повлияет на всех его детей и предков. Имеет значительно большее влияние на производительность чем repaint.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Страница не может выполнять никакие другие операции в то время, когда проиходит

A

reflow или repaint. Потому что перечисленные операции блокируют браузер.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

elem.innerHTML говорит браузеру

A

распарсить строку, проверить на наличие тегов, если нашел таковые то создать DOM-элементы и вставить их в правильном порядке.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Метод insertAdjacentHTML()

A

Метод парсит указанную строку как HTML и добавляет результирующие узлы в указанное место DOM-дерева.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

element.insertAdjacentHTML(position, string)

position — позиция относительно элемента. Принимает одно из следующих значений:

A

‘beforebegin’ - перед element
‘afterbegin’ - внутрь element, в самое начало контента
‘beforeend’ - внутрь element, в самый конец контента
‘afterend’ - после element

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

beforebegin и afterend работают только в том случае, если

A

узел уже находится в DOM-дереве и имеет родительский элемент.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

elem.insertAdjacentElement(position, elem) — вставляет в

A

произвольное место не HTML-строку, а элемент elem.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

elem.insertAdjacentText(position, text) — создаёт

A

текстовый узел из строки text и вставляет его в указанное место относительно elem.