Посмотрите видео и пройдите эти интерактивные уроки, чтобы изучить основы просмотра и изменения DOM страницы с помощью Chrome DevTools.
В этом руководстве предполагается, что вы знаете разницу между DOM и HTML. См. Приложение: HTML против DOM для объяснения.
Просмотр узлов DOM
Панель «Дерево элементов DOM» — это место, где вы выполняете все действия, связанные с DOM в DevTools.
Осмотреть узел
Если вас интересует определенный узел DOM, Inspect — это быстрый способ открыть DevTools и исследовать этот узел.
- Щелкните правой кнопкой мыши по Микеланджело ниже и выберите «Просмотреть» .
- Микеланджело
- Рафаэль
Откроется панель «Элементы» DevTools.
<li>Michelangelo</li>
будет выделен в дереве DOM .
- Нажмите значок «Проверка» в верхнем левом углу DevTools.
Нажмите на текст Токио ниже.
- Токио
Бейрут
Теперь
<li>Tokyo</li>
выделен в дереве DOM.
Проверка узла также является первым шагом к просмотру и изменению стилей узла. См. Начало работы с просмотром и изменением CSS .
Навигация по дереву DOM с помощью клавиатуры
После выбора узла в дереве DOM вы можете перемещаться по дереву DOM с помощью клавиатуры.
Щелкните правой кнопкой мыши Ringo ниже и выберите «Просмотреть» .
<li>Ringo</li>
будет выбран в дереве DOM.- Джордж
- Ринго
- Пол
Джон
Нажмите клавишу со стрелкой вверх 2 раза. Выбрано
<ul>
.Нажмите клавишу со стрелкой влево . Список
<ul>
свернется.Нажмите клавишу со стрелкой влево еще раз. Выбран родительский узел
<ul>
. В данном случае это узел<li>
, содержащий инструкции для шага 1.Нажмите клавишу со стрелкой вниз 3 раза, чтобы повторно выбрать список
<ul>
, который вы только что свернули. Это должно выглядеть так:<ul>...</ul>
Нажмите клавишу со стрелкой вправо . Список развернется.
Прокрутите в поле зрения
При просмотре DOM-дерева иногда вы можете обнаружить, что вас интересует узел DOM, который в данный момент не находится в области просмотра. Например, предположим, что вы прокрутили страницу до конца и вас интересует узел <h1>
в верхней части страницы. Прокрутка в область просмотра позволяет быстро изменить положение области просмотра, чтобы вы могли видеть узел.
Щелкните правой кнопкой мыши Magritte ниже и выберите «Просмотреть» .
- Магритт
- Сутин
Перейдите в Приложение: Прокрутите в раздел «Вид» внизу этой страницы. Инструкции продолжаются там.
После выполнения инструкций внизу страницы вам следует вернуться сюда.
Показать линейки
С помощью линеек, расположенных выше и слева от области просмотра, вы можете измерить ширину и высоту элемента, наведя на него курсор на панели «Элементы» .
Включить линейки можно одним из двух способов:
- Нажмите Control + Shift + P или Command + Shift + P (Mac), чтобы открыть меню команд , введите
Show rulers on hover
и нажмите Enter . - Проверьте Настройки > Настройки > Элементы > Показывать линейки при наведении .
Единицей измерения линеек являются пиксели.
Поиск узлов
Вы можете осуществлять поиск в дереве DOM по строке, селектору CSS или селектору XPath.
- Наведите курсор на панель «Элементы» .
- Нажмите Control + F или Command + F (Mac). Панель поиска откроется в нижней части дерева DOM.
Введите
The Moon is a Harsh Mistress
. Последнее предложение выделено в дереве DOM.
Как упоминалось выше, строка поиска также поддерживает селекторы CSS и XPath.
Панель Elements выбирает первый совпадающий результат в дереве DOM и выводит его в область просмотра. По умолчанию это происходит по мере ввода текста. Если вы всегда работаете с длинными поисковыми запросами, вы можете настроить DevTools на запуск поиска только при нажатии Enter .
Чтобы избежать ненужных переходов между узлами, снимите флажок
> Настройки > Глобальные > Поиск по мере ввода .Редактировать DOM
Вы можете редактировать DOM «на лету» и видеть, как эти изменения влияют на страницу.
Редактировать содержимое
Чтобы отредактировать содержимое узла, дважды щелкните по содержимому в дереве DOM.
Щелкните правой кнопкой мыши Мишель ниже и выберите «Просмотреть» .
- Жарить
- Мишель
В дереве DOM дважды щелкните
Michelle
. Другими словами, дважды щелкните текст между<li>
и</li>
. Текст выделяется синим цветом, что означает, что он выбран.Удалите
Michelle
, введитеLeela
, затем нажмите Enter для подтверждения изменения. Текст выше изменится с Michelle на Leela .
Изменить атрибуты
Чтобы изменить атрибуты, дважды щелкните имя или значение атрибута. Следуйте инструкциям ниже, чтобы узнать, как добавлять атрибуты к узлу.
Щелкните правой кнопкой мыши Говарда ниже и выберите «Проверить» .
- Говард
- Винс
Дважды щелкните
<li>
. Текст подсвечивается, указывая на то, что узел выбран.Нажмите клавишу со стрелкой вправо , добавьте пробел, введите
style="background-color:gold"
и нажмите Enter . Цвет фона узла изменится на золотой.
Вы также можете воспользоваться опцией «Изменить атрибут» , вызываемой правой кнопкой мыши.
Изменить тип узла
Чтобы изменить тип узла, дважды щелкните по типу, а затем введите новый тип.
Щелкните правой кнопкой мыши Хэнка ниже и выберите «Просмотреть» .
- Дин
- Хэнк
- Фаддей
- Брок
Дважды щелкните
<li>
. Текстli
будет выделен.Удалите
li
, введитеbutton
, затем нажмите Enter . Узел<li>
изменится на узел<button>
.
Редактировать как HTML
Чтобы редактировать узлы как HTML с подсветкой синтаксиса и автозаполнением, выберите Редактировать как HTML в раскрывающемся меню узла.
Щелкните правой кнопкой мыши по Леонарду ниже и выберите «Просмотреть» .
- Пенни
- Говард
- Раджеш
- Леонард
На панели «Элементы» щелкните правой кнопкой мыши текущий узел и выберите в раскрывающемся меню пункт «Изменить как HTML» .
Нажмите Enter , чтобы начать новую строку, и начните вводить
<l
. DevTool подсвечивает синтаксис HTML и автоматически заполняет теги.Выберите элемент
li
из меню автозаполнения и введите>
. DevTools автоматически добавит закрывающий тег</li>
после курсора.Введите
Sheldon
внутри тега и нажмите Control / Command + Enter , чтобы применить изменения.
Дублировать узел
Вы можете создать дубликат элемента, щелкнув правой кнопкой мыши по пункту «Дублировать элемент» .
Щелкните правой кнопкой мыши по Нане ниже и выберите «Просмотреть» .
- Костер тщеславия
- Нана
- Орландо
- Белый шум
На панели «Элементы» щелкните правой кнопкой мыши элемент
<li>Nana</li>
и выберите «Дублировать элемент» в раскрывающемся меню.Вернуться на страницу. Элемент списка был мгновенно продублирован.
Вы также можете использовать сочетания клавиш: Shift + Alt + Стрелка вниз (Windows и Linux) и Shift + Option + Стрелка вниз (MacOS).
Сделайте снимок экрана узла
С помощью функции «Снимок экрана узла» можно сделать снимок экрана любого отдельного узла в дереве DOM.
Щелкните правой кнопкой мыши любое изображение на этой странице и выберите «Проверить» .
На панели «Элементы» щелкните правой кнопкой мыши URL-адрес изображения и выберите в раскрывающемся меню пункт «Сделать снимок экрана узла» .
Скриншот будет сохранен в загрузках.
Чтобы узнать больше о способах создания снимков экрана с помощью DevTools, ознакомьтесь с 4 способами создания снимков экрана с помощью DevTools .
Изменить порядок узлов DOM
Перетащите узлы, чтобы изменить их порядок.
Щелкните правой кнопкой мыши по Элвису Пресли ниже и выберите Inspect . Обратите внимание, что это последний элемент в списке.
- Стиви Уандер
- Том Уэйтс
- Крис Тайл
- Элвис Пресли
В дереве DOM перетащите
<li>Elvis Presley</li>
в начало списка.
Состояние силы
Вы можете принудительно оставить узлы в таких состояниях, как :active
, :hover
, :focus
, :visited
и :focus-within
.
Наведите курсор на «Повелителя мух» ниже. Цвет фона станет оранжевым.
- Повелитель мух
- Преступление и наказание
- Моби Дик
Щелкните правой кнопкой мыши по «Повелителю мух» выше и выберите «Просмотреть» .
Щелкните правой кнопкой мыши
<li class="demo--hover">The Lord of the Flies</li>
и выберите Force State > :hover . См. Приложение: Отсутствующие параметры, если вы не видите этот параметр. Цвет фона остается оранжевым, даже если вы фактически не наводите курсор на узел.
Скрыть узел
Нажмите H , чтобы скрыть узел.
Щелкните правой кнопкой мыши пункт «Звезды — мой пункт назначения» ниже и выберите «Проверить» .
- Граф Монте-Кристо
- Звезды Моя Цель
Нажмите клавишу H. Узел скрыт. Вы также можете щелкнуть правой кнопкой мыши по узлу и использовать опцию Скрыть элемент .
Нажмите клавишу H еще раз. Узел снова отобразится.
Удалить узел
Нажмите Delete , чтобы удалить узел.
Щелкните правой кнопкой мыши по элементу Foundation ниже и выберите «Проверить» .
- Иллюстрированный человек
- Сквозь зеркало
- Фундамент
Нажмите клавишу Delete . Узел будет удален. Вы также можете щелкнуть правой кнопкой мыши узел и использовать опцию Delete element .
Нажмите Control + Z или Command + Z (Mac). Последнее действие отменяется, и узел появляется снова.
Узлы доступа в консоли
DevTools предоставляет несколько сочетаний клавиш для доступа к узлам DOM из консоли или для получения ссылок JavaScript на них.
Ссылка на текущий выбранный узел с помощью $0
При проверке узла текст == $0
рядом с узлом означает, что вы можете ссылаться на этот узел в консоли с помощью переменной $0
.
Щелкните правой кнопкой мыши по левой руке тьмы ниже и выберите «Просмотреть» .
- Левая рука тьмы
- Дюна
Нажмите клавишу Escape , чтобы открыть консольный ящик.
Введите
$0
и нажмите клавишу Enter . Результат выражения показывает, что$0
вычисляется как<li>The Left Hand of Darkness</li>
.Наведите курсор на результат. Узел подсвечивается в области просмотра.
Нажмите
<li>Dune</li>
в дереве DOM, снова введите$0
в консоли, а затем снова нажмите Enter . Теперь$0
вычисляется как<li>Dune</li>
.
Сохранить как глобальную переменную
Если вам необходимо ссылаться на узел много раз, сохраните его как глобальную переменную.
Щелкните правой кнопкой мыши по элементу The Big Sleep ниже и выберите «Проверить» .
- Большой сон
- Долгое прощание
Щелкните правой кнопкой мыши
<li>The Big Sleep</li>
в дереве DOM и выберите Store as global variable . См. Приложение: Отсутствующие параметры, если вы не видите этот параметр.Введите
temp1
в Консоли и нажмите Enter . Результат выражения показывает, что переменная вычисляется как узел.
Копировать путь JS
Скопируйте путь JavaScript к узлу, когда вам нужно будет сослаться на него в автоматизированном тесте.
Щелкните правой кнопкой мыши по произведению «Братья Карамазовы» ниже и выберите «Просмотреть» .
- Братья Карамазовы
- Преступление и наказание
Щелкните правой кнопкой мыши
<li>The Brothers Karamazov</li>
в дереве DOM и выберите Копировать > Копировать путь JS . Выражениеdocument.querySelector()
, которое разрешается в узел, было скопировано в буфер обмена.Нажмите Control + V или Command + V (Mac), чтобы вставить выражение в консоль.
Нажмите Enter , чтобы оценить выражение.
Перерыв на изменения DOM
DevTools позволяет вам приостанавливать JavaScript страницы, когда JavaScript изменяет DOM. См. Точки останова изменения DOM .
Следующие шаги
Это охватывает большинство функций DevTools, связанных с DOM. Вы можете обнаружить остальные, щелкнув правой кнопкой мыши узлы в дереве DOM и поэкспериментировав с другими опциями, которые не были рассмотрены в этом руководстве. См. также Сочетания клавиш панели элементов .
Посетите домашнюю страницу Chrome DevTools, чтобы узнать обо всех возможностях DevTools.
См. раздел «Сообщество» , если вы хотите связаться с командой DevTools или получить помощь от сообщества DevTools.
Приложение: HTML против DOM
В этом разделе кратко объясняется разница между HTML и DOM.
Когда вы используете веб-браузер для запроса страницы, например https://example.com
сервер возвращает HTML-код следующим образом:
<!doctype html>
<html>
<head>
<title>Hello, world!</title>
</head>
<body>
<h1>Hello, world!</h1>
<p>This is a hypertext document on the World Wide Web.</p>
<script src="/script.js" async></script>
</body>
</html>
Браузер анализирует HTML и создает дерево объектов, подобное этому:
html
head
title
body
h1
p
script
Это дерево объектов или узлов, представляющих содержимое страницы, называется DOM. Сейчас оно выглядит так же, как HTML, но предположим, что скрипт, на который ссылаются в нижней части HTML, запускает этот код:
const h1 = document.querySelector('h1');
h1.parentElement.removeChild(h1);
const p = document.createElement('p');
p.textContent = 'Wildcard!';
document.body.appendChild(p);
Этот код удаляет узел h1
и добавляет еще один узел p
в DOM. Полный DOM теперь выглядит так:
html
head
title
body
p
script
p
HTML страницы теперь отличается от ее DOM. Другими словами, HTML представляет начальное содержимое страницы, а DOM представляет текущее содержимое страницы. Когда JavaScript добавляет, удаляет или редактирует узлы, DOM становится отличным от HTML.
Более подробную информацию см. в разделе Введение в DOM .
Приложение: Прокрутите для просмотра
Это продолжение раздела Прокрутить в вид . Следуйте инструкциям ниже, чтобы завершить раздел.
- Узел
<li>Magritte</li>
должен быть по-прежнему выбран в дереве DOM. Если нет, вернитесь к Scroll into view и начните заново. Щелкните правой кнопкой мыши узел
<li>Magritte</li>
и выберите Прокрутить в вид . Окно просмотра прокручивается обратно, чтобы вы могли видеть узел Magritte . См. Приложение: Отсутствующие параметры, если вы не видите параметр Прокрутить в вид .
Приложение: Отсутствующие параметры
Многие инструкции в этом руководстве советуют вам щелкнуть правой кнопкой мыши по узлу в дереве DOM, а затем выбрать опцию из всплывающего контекстного меню. Если вы не видите указанную опцию в контекстном меню, попробуйте щелкнуть правой кнопкой мыши вне текста узла.