Изучите основы интерактивности DOM и веб-страниц с помощью JavaScript.
DOM (объектная модель документа) позволяет читать и изменять HTML-документы с помощью JavaScript. В этой статье мы увидим, как выполнять основные операции DOM с помощью JavaScript.
Начнем с того, что такое DOM.
Что такое ДОМ
Согласно документам MDN,
Объектная модель документа (DOM) — это программный интерфейс для веб-документов. Он представляет страницу, чтобы программы могли изменять структуру, стиль и содержимое документа.
DOM представляет документ в виде узлов и объектов; таким образом, языки программирования могут взаимодействовать со страницей. Мы также можем получить доступ к этим объектам, используя другие языки, такие как python.
DOM не является частью языка JavaScript, а представляет собой веб-API, используемый для создания веб-сайтов.
Теперь, когда мы знаем, что такое DOM, давайте посмотрим, как мы можем взаимодействовать с ним с помощью JavaScript.
1. Выберите элементы HTML
Существует несколько способов выбора/доступа к элементу HTML с помощью JavaScript.
Мы можем выбрать элемент HTML на основе его идентификатора.
const element = document.getElementById(‘id’)
Мы можем выбрать элемент на основе его класса.
const elements = document.getElementsByClassName(‘class')
Это выбирает все элементы с заданным именем класса.
Мы также можем выбирать элементы с помощью селекторов CSS с помощью querySelector()
.
const element = document.querySelector(‘selector’)
Это выбирает первый элемент, который соответствует селектору.
Мы также можем выбирать по id(‘#id’)
и имени класса(‘.class’)
, используя querySelector
.
const elements = querySelectorAll(‘selector’)
Это выбирает все элементы, которые соответствуют данному селектору CSS.
2. Создайте элемент HTML
Мы можем создать новый элемент HTML, используя JavaScript с createElement()
.
const p = document.createElement(‘p’)
Это создает элемент абзаца.
Мы также можем установить идентификатор и классы с помощью
p.id = id p.classList.add(‘class’)
Чтобы написать текст между элементом абзаца,
p.innerText = ‘This is an example’
3. Добавьте созданный HTML-элемент
Хотя мы можем создавать HTML-элементы в JavaScript, они не будут автоматически отражаться в HTML-документе. Чтобы добавить их в документ HTML, мы можем сделать
document.body.append(p)
or
document.body.appendChild(p)
Разница между ними заключается в том, что append()
может добавлять несколько элементов одновременно, а appendChild()
может добавлять только один элемент.
Мы можем добавлять элементы к тегам, таким как div
, section
и т. д., используя аналогичный метод.
4. Атрибуты
Мы можем читать и добавлять атрибуты к элементам HTML, используя getAttribute()
и setAttribute()
.
const img = document.querySelector(‘img’) img.getAttribute(‘src’)
Это прочитает атрибут src
в теге img
.
const img = document.querySelector(‘img’) img.setAttribute(‘width’, “300”)
Это установит для атрибута width
тега img
значение 300
.
Мы также можем получить доступ к этим атрибутам без использования getAttribute()
и setAttribute()
. Просто img.src
и img.width = ‘300’
будут работать так же, как и выше.
5. Атрибуты данных
Иногда нам нужно установить некоторые пользовательские атрибуты для элементов. Атрибуты данных являются такими атрибутами. Атрибуты с синтаксисом data-*
считаются атрибутами данных и легко доступны в JavaScript.
<article id="electric-cars" data-columns="3" data-index-number="12314" data-parent="cars"> ... </article>
Чтобы прочитать эти атрибуты, мы можем сделать
const article = document.querySelector(‘article’) article.dataset.parent // returns ‘cars’ article.dataset.indexNumber // returns ‘12314’
Чтобы установить атрибуты данных,
article.dataset.colorName = ‘red’
Это приведет к тому,
<article Id="electric-cars" data-columns="3" data-index-number="12314" data-parent="cars" data-color-name = “red” > ... </article>
6. Стили
Мы можем изменить стили элемента с помощью JavaScript, используя style.propertyName
.
const p = document.querySelector(‘p’) p.style.color = ‘red’
Это изменяет цвет текста внутри тега p на красный.
Имена свойств CSS написаны в верблюжьем регистре, поэтому background-color
станет backgroundColor
и так далее. И значения всегда являются строками.
7. Прослушиватель событий
Мы можем добавлять события в элементы HTML, используя javaScript с addEventListener()
.
const button = document.querySelector(‘button’) button.addEventListener(‘click’, () => { // do something })
Это добавляет событие щелчка на кнопку, и когда кнопка нажата, он выполняет код внутри функции обратного вызова.
Если мы хотим добавить глобальные предопределенные события, такие как щелчок, наведение и т. д., нам не нужно использовать addEventListener()
. Мы можем просто сделать
button.onclick = () => { // do something }
и это будет работать так же, как и при использовании addEventListener()
.
8. Удалить элемент HTML
Для этого мы можем использовать remove()
и removeChild()
.
const p = document.querySelector(‘p’) p.remove()
Это удалит тег p
из HTML-документа.
const p = document.querySelector(‘p’) document.removeChild(p)
Это также удаляет тег p
из HTML-документа.
Разница в обоих методах заключается в том, что в методе removeChild()
нам нужна ссылка удаляемого элемента и ссылка родительского элемента. Но в случае с remove()
нам нужна только ссылка на удаляемый элемент.
С DOM можно делать гораздо больше, и мы обсудим их в следующей статье.
А пока продолжайте учиться!