15 методов JavaScript для управления DOM для веб-разработчиков
Как веб-разработчик, вам часто нужно манипулировать DOM, объектная модель, которая используется браузерами для указать логическую структуру веб-страниц, и на основе этой структуры отображать HTML-элементы на экране.
HTML определяет структура DOM по умолчанию. Однако во многих случаях вы можете манипулировать этим с помощью JavaScript, обычно для того, чтобы добавить дополнительные функции на сайт.
В этом посте вы найдете список 15 основных методов JavaScript тот помощь DOM манипуляции. Вы, вероятно, будете часто использовать эти методы в своем коде, и вы также натолкнетесь на них в наших руководствах по JavaScript.
1. querySelector ()
querySelector ()
метод возвращает первый элемент, который соответствует одному или нескольким селекторам CSS. Если совпадений не найдено, возвращается ноль
.
До querySelector ()
разработчики широко использовали getElementById ()
метод, который выбирает элемент с указанным Я бы
значение.
Хотя getElementById ()
все еще полезный метод, но с более новым querySelector ()
а также querySelectorAll ()
методы, которые мы свободны целевые элементы на основе любого селектора CSS, таким образом, у нас больше гибкости.
Синтаксис
var ele = document.querySelector (селектор);
Ele
- Первый соответствующий элемент илиноль
(если ни один элемент не соответствует селекторам)селектор
- один или несколько селекторов CSS, таких как"#FooId"
,".FooClassName"
,».Class1.class2"
, или же".class1, .class2"
Пример кода
В этом примере первый абзац первый абзац второй абзац третий Проверьте В отличие от Соответствующие элементы возвращаются как В приведенном ниже примере используется тот же HTML, что и в предыдущем. Однако в этом примере все абзацы выделены с помощью абзац первый абзац второй абзац третий События обращайтесь к тому, что происходит с элементом HTML, таким как щелчок, фокусировка или загрузка, на которую мы можем реагировать с помощью JavaScript. Мы можем назначить функции JS Слушать для этих событий в элементах и сделать что-то, когда событие произошло. Есть три способа, которыми вы можете назначить функцию определенному событию. Если Метод Останавливает пузыри событий, то есть предотвращает вызов любых слушателей событий для того же типа события в предках элемента. Чтобы использовать эту функцию, вы можете использовать 2 синтаксиса: Слушатель вызывается только в первый раз, когда происходит событие, затем он автоматически отсоединяется от события и больше не будет вызываться им.. Действие по умолчанию для события не может быть остановлено с помощью метода protectDefault (). В этом примере мы добавляем прослушиватель события click Назначьте Использует тот же синтаксис, что и вышеупомянутый Следуя примеру кода, который мы использовали в Позже вы можете добавить этот элемент на веб-страницу, используя различные методы для вставки DOM, такие как В следующем примере вы можете создать новый элемент абзаца: Вставляемый ребенок может быть вновь созданный элемент, или уже существующий. В последнем случае он будет перемещен из своей предыдущей позиции в позицию последнего потомка. В этом примере мы вставляем В следующей интерактивной демонстрации письма от Проверьте, как В этом примере мы удаляем В этом примере дочерний элемент Когда вам нужно создать новый элемент, который должен быть такой же как уже существующий элемент на веб-странице вы можете просто создать копию уже существующего элемента с использованием В этом примере мы создаем копию для В следствии, Если указанный дочерний элемент не существует или вы передаете явно В этом примере мы создаем новый Это интерактивное демо работает аналогично нашему предыдущему демо, принадлежащему Это создает Почему бы нам просто не добавить элементы непосредственно в дерево DOM? Потому что DOM вставка вызывает изменения макета, и это дорогой браузерный процесс так как несколько последовательных вставок элементов вызовут больше изменений макета. С другой стороны, добавление элементов в В этом примере мы создаем несколько строк и ячеек таблицы с В результате пять строк - каждая из которых содержит одну ячейку с номером от 1 до 5 в качестве содержимого - будут вставлены в таблицу. Иногда вы хотите проверьте значения свойств CSS элемента, прежде чем вносить какие-либо изменения. Вы можете использовать В этом примере мы получаем и оповещаем вычисленные В этом примере мы добавляем В этом примере мы предупреждаем значение В этом примере мы удаляем querySelector ()
метод и его цвет меняется на красный.
var firstDiv = document.querySelector ('div'); firstDiv.style.color = 'red';
Интерактивная Демо
querySelector ()
Метод в следующей интерактивной демонстрации. Просто введите селектор, соответствующий тому, который вы можете найти внутри синих полей (например,. #три
) и нажмите кнопку «Выбрать». Обратите внимание, что если вы введете .блок
, только его первый экземпляр будет выбран.2.
querySelectorAll ()
querySelector ()
который возвращает только первый экземпляр всех соответствующих элементов, querySelectorAll ()
возвращает все элементы, которые соответствуют указанному селектору CSS.NodeList
объект, который будет пустым, если не найдено подходящих элементов.Синтаксис
var eles = document.querySelectorAll (селектор);
Eles
- NodeList
объект со всеми соответствующими элементами в качестве значений свойств. Объект пуст, если совпадений не найдено.селектор
- один или несколько селекторов CSS, таких как "#FooId"
, ".FooClassName"
, ».Class1.class2"
, или же ".class1, .class2"
Пример кода
querySelectorAll ()
, и окрашены в синий цвет.
var paras = document.querySelectorAll ('p'); for (var p параграфов) p.style.color = 'blue';
3.
addEventListener ()
Foo ()
это пользовательская функция, вы можете зарегистрировать ее как слушатель события клика (вызывать его при нажатии на элемент кнопки) тремя способами:
var btn = document.querySelector ('button'); btn.onclick = Foo;
var btn = document.querySelector ('button'); btn.addEventListener ('click', foo);
addEventListener ()
(третье решение) имеет некоторые плюсы; это новейший стандарт, позволяющий назначать более одной функции в качестве прослушивателей событий для одного события, и поставляется с полезным набором опций.Синтаксис
ele.addEventListener (evt, слушатель, [опции]);
Ele
- HTML-элемент, который прослушивает прослушиватель событий.ЭВТ
- Целевое мероприятие.слушатель
- Как правило, функция JavaScript.опции
- (необязательно) Объект с набором логических свойств (перечисленных ниже).Опции Что происходит, когда установлено правда
?захватить
ele.addEventListener (evt, слушатель, правда)
ele.addEventListener (evt, слушатель, capture: true);
один раз
пассивный
Пример кода
Foo
, к HTML-тег.
var btn = document.querySelector ('button'); btn.addEventListener ( 'нажмите', Foo); function foo () alert ('hello');
Интерактивная Демо
Foo ()
Пользовательская функция в качестве прослушивателя событий для любого из трех следующих событий: вход
, щелчок
или же Mouseover
& вызвать выбранное событие в нижнем поле ввода, наведя на него курсор, щелкнув или введя его.4.
removeEventListener ()
removeEventListener ()
метод отсоединяет слушателя события ранее добавлено с addEventListener ()
метод от события, которое он слушает.Синтаксис
ele.removeEventListener (evt, слушатель, [параметры]);
addEventListener ()
метод (за исключением один раз
вариант, который исключен). Параметры используются, чтобы быть очень конкретными при определении слушателя, который будет отсоединен.Пример кода
addEventListener ()
, здесь мы удаляем обработчик события click под названием Foo
от элемент.
btn.removeEventListener ( 'нажмите', Foo);
5.
createElement ()
createElement ()
метод создает новый элемент HTML с использованием имя тега HTML быть создан, например, 'п'
или же 'DIV'
.AppendChild ()
(см. далее в этом посте).Синтаксис
document.createElement (тэгу);
название тэга
- Имя тега HTML, который вы хотите создать. Пример кода
var pEle = document.createElement ('p')
6.
AppendChild ()
AppendChild ()
метод добавляет элемент в качестве последнего потомка к элементу HTML, который вызывает этот метод.Синтаксис
ele.appendChild (childEle)
Ele
- HTML-элемент, к которому childEle
добавляется как последний ребенок.childEle
- Элемент HTML добавлен как последний дочерний элемент Ele
.Пример кода
элемент как дитя
AppendChild ()
и вышеупомянутые createElement ()
методы.
var div = document.querySelector ('div'); var strong = document.createElement ('strong'); strong.textContent = 'Hello'; div.appendChild (сильный);
Интерактивная Демо
#a
в #р
являются дочерними элементами # Родитель один
, # Родитель-два
, а также # Родитель-три
селекторы идентификаторов.AppendChild ()
метод работает введите одно родительское и одно дочернее имя селектора в поля ввода ниже. Вы также можете выбрать детей, принадлежащих другому родителю..7.
RemoveChild ()
RemoveChild ()
метод удаляет указанный дочерний элемент из элемента HTML, который вызывает этот метод.Синтаксис
ele.removeChild (childEle)
Ele
- Родительский элемент childEle
.childEle
- Дочерний элемент Ele
.Пример кода
элемент, который мы добавили как ребенок к
AppendChild ()
метод. div.removeChild (сильный);
8.
replaceChild ()
replaceChild ()
метод заменяет дочерний элемент другим принадлежность к родительскому элементу, который вызывает этот метод.Синтаксис
ele.replaceChild (newChildEle, oldChileEle)
Ele
- Родительский элемент, дочерние элементы которого должны быть заменены.newChildEle
- Дочерний элемент Ele
это заменит oldChildEle
.oldChildEle
- Дочерний элемент Ele
, это будет заменено newChildEle
.Пример кода
принадлежность к
тег.
var em = document.createElement ('em'); var strong = document.querySelector ('strong'); var div = document.querySelector ('div'); em.textContent = 'hi'; div.replaceChild (em, сильный);
9.
cloneNode ()
cloneNode ()
метод.Синтаксис
var dupeEle = ele.cloneNode ([глубокий])
dupeEle
- Копия Ele
элемент.Ele
- HTML-элемент для копирования.глубоко
- (необязательно) Булево значение. Если установлено правда
, dupeEle
будет иметь все дочерние элементы Ele
имеет, если установлено ложный
он будет клонирован без детей.Пример кода
элемент с
cloneNode ()
, Затем мы добавим его в AppendChild ()
метод. элементы, как с
Привет
строка как контент.
var strong = document.querySelector ('strong'); var copy = strong.cloneNode (true); var div = document.querySelector ('div'); div.appendChild (копия);
10.
InsertBefore ()
InsertBefore ()
метод добавляет указанный дочерний элемент перед другим дочерним элементом. Метод вызывается родительским элементом..ноль
вместо него добавляется дочерний элемент, который нужно вставить как последний ребенок родителя (похожий на AppendChild ()
).Синтаксис
ele.insertBefore (newEle, refEle);
Ele
- Родительский элемент.newEle
- Новый HTML-элемент для вставки.refEle
- Дочерний элемент Ele
до чего newEle
будет вставлен.Пример кода
элемент с текстом внутри, и добавить его до
элемент внутри
var em = document.createElement ('em'); var strong = document.querySelector ('strong'); var div = document.querySelector ('div'); em.textContent = 'hi'; div.insertBefore (em, strong);
Интерактивная Демо
AppendChild ()
метод. Здесь вам нужно только ввести идентификаторы селектора двух дочерних элементов (из #a
в #р
) в поля ввода, и вы можете увидеть, как InsertBefore ()
метод перемещает первого указанного потомка до второй.11.
createDocumentFragment ()
createDocumentFragment ()
метод может быть не так хорошо известен, как другие в этом списке, тем не менее, является важным, особенно если вы хотите вставить несколько элементов навалом, например, добавление нескольких строк в таблицу.DocumentFragment
объект, который по сути является узел DOM, который не является частью дерева DOM. Это похоже на буфер, в который мы можем сначала добавить и сохранить другие элементы (например, несколько строк), прежде чем добавлять их в нужный узел в дереве DOM (например, в таблицу)..DocumentFragment
объект не вызывает изменений макета, так что вы можете добавить к нему столько элементов, сколько захотите, прежде чем передавать их в дерево DOM, вызывая изменение макета только на этом этапе..Синтаксис
document.createDocumentFragment ()
Пример кода
createElement ()
метод, а затем добавить их в DocumentFragment
объект, наконец, добавить этот фрагмент документа в HTML с использованием
AppendChild ()
метод.
var table = document.querySelector ("таблица"); var df = document.createDocumentFragment (); для (var i = 0; i<5; i++) var td = document.createElement("td"); var tr = document.createElement("tr"); td.textContent = i; tr.appendChild(td) df.appendChild(tr); table.appendChild(df);
12.
getComputedStyle ()
ele.style
свойство делать то же самое, однако getComputedStyle ()
метод был сделан именно для этой цели, это возвращает вычисленные значения только для чтения всех свойств CSS указанного элемента HTML.Синтаксис
var style = getComputedStyle (ele, [pseudoEle])
стиль
- CSSStyleDeclaration
объект, возвращаемый методом. Он содержит все свойства CSS и их значения Ele
элемент.Ele
- HTML-элемент, из которого извлекаются значения свойств CSS.pseudoEle
- (необязательно) Строка, представляющая псевдоэлемент (например,, ':после'
). Если это упомянуто, то свойства CSS указанного псевдоэлемента, связанного с Ele
будет возвращен.Пример кода
ширина
значение getComputedStyle ()
метод.
var style = getComputedStyle (document.querySelector ('div')); оповещения (style.width);
13.
SetAttribute ()
SetAttribute ()
либо метод добавляет новый атрибут к элементу HTML, или обновляет значение атрибута, который уже существует.Синтаксис
ele.setAttribute (имя, значение);
Ele
- Элемент HTML, к которому добавлен атрибут или атрибут которого обновлен.название
- Наименование атрибута.значение
- Значение атрибута.Пример кода
contenteditable
приписать SetAttribute ()
метод, который сделает его содержимое редактируемым. var div = document.querySelector ('div'); div.setAttribute ( 'contenteditable' ")
14.
GetAttribute ()
GetAttribute ()
метод возвращает значение указанного атрибута принадлежность к определенному элементу HTML.Синтаксис
ele.getAttribute (имя);
Ele
- HTML-элемент, атрибут которого запрашивается.название
- Наименование атрибута.Пример кода
contenteditable
атрибут, принадлежащий GetAttribute ()
метод. var div = document.querySelector ('div'); Оповещение (div.getAttribute ( 'contenteditable'))
15.
removeAttribute ()
removeAttribute ()
метод удаляет данный атрибут определенного элемента HTML.Синтаксис
ele.removeAttribute (имя);
Ele
- HTML-элемент, атрибут которого должен быть удален.название
- Наименование атрибута.Пример кода
contenteditable
атрибут из var div = document.querySelector ('div'); div.removeAttribute ( 'contenteditable');