Что такое document в javascript

Форум

Discord чат

Введение. DOM в примерах.

Простейший DOM

Построим, для начала, дерево DOM для следующего документа.

Что такое document в javascript. Смотреть фото Что такое document в javascript. Смотреть картинку Что такое document в javascript. Картинка про Что такое document в javascript. Фото Что такое document в javascript

Пример посложнее

Рассмотрим теперь более жизненную страничку:

Что такое document в javascript. Смотреть фото Что такое document в javascript. Смотреть картинку Что такое document в javascript. Картинка про Что такое document в javascript. Фото Что такое document в javascript

А вот так выглядит дерево, если изобразить его прямо на HTML-страничке:

Что такое document в javascript. Смотреть фото Что такое document в javascript. Смотреть картинку Что такое document в javascript. Картинка про Что такое document в javascript. Фото Что такое document в javascript

Кстати, дерево на этом рисунке не учитывает текст, состоящий из одних пробельных символов. Например, такой текстовый узел должен идти сразу после

    . DOM, не содержащий таких «пустых» узлов, называют «нормализованным».

Пример с атрибутами и DOCTYPE

Рассмотрим чуть более сложный документ.

Что такое document в javascript. Смотреть фото Что такое document в javascript. Смотреть картинку Что такое document в javascript. Картинка про Что такое document в javascript. Фото Что такое document в javascript

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

Вообще-то это секрет, но DOCTYPE тоже является DOM-узлом, и находится в дереве DOM слева от HTML (на рисунке этот факт скрыт).

Нормализация в различных браузерах

При разборе HTML Internet Explorer сразу создает нормализованный DOM, в котором не создаются узлы из пустого текста.

Что такое document в javascript. Смотреть фото Что такое document в javascript. Смотреть картинку Что такое document в javascript. Картинка про Что такое document в javascript. Фото Что такое document в javascript

На рисунке для краткости текстовые узлы обозначены просто решеткой. У body вместо 3 появилось 7 детей.

Opera тоже имеет чем похвастаться. Она может добавить лишний пустой элемент «просто от себя».

У меня получается 3 для IE, 7 для Firefox и 8 (!?) для Opera.

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

Возможности, которые дает DOM

Зачем, кроме красивых рисунков, нужна иерархическая модель DOM?

Каждый DOM-элемент является объектом и предоставляет свойства для манипуляции своим содержимым, для доступа к родителям и потомкам.

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

Разберем подробнее способы доступа и свойства элементов DOM.

Доступ к элементам

Начнем с вершины дерева.

document.documentElement

document.body

Типы DOM-элементов

У каждого элемента в DOM-модели есть тип. Его номер хранится в атрибуте elem.nodeType

Всего в DOM различают 12 типов элементов.

Остальные типы в javascript программировании не используются.

Пример

Например, вот так выглядел бы в браузере документ из примера выше, если каждый видимый элемент обвести рамкой с цифрой nodeType в правом верхнем углу.

Что такое document в javascript. Смотреть фото Что такое document в javascript. Смотреть картинку Что такое document в javascript. Картинка про Что такое document в javascript. Фото Что такое document в javascript

Дочерние элементы

Что такое document в javascript. Смотреть фото Что такое document в javascript. Смотреть картинку Что такое document в javascript. Картинка про Что такое document в javascript. Фото Что такое document в javascript

Что такое document в javascript. Смотреть фото Что такое document в javascript. Смотреть картинку Что такое document в javascript. Картинка про Что такое document в javascript. Фото Что такое document в javascript

Этих свойств вполне хватает для удобного обращения к соседям.

Свойства элементов

Рассмотрим здесь еще некоторые (не все) свойства элементов, полезные при работе с DOM.

tagName

Атрибут есть у элементов-тегов и содержит имя тега в верхнем регистре, только для чтения.

style

Это свойство управляет стилем. Оно аналогично установке стиля в CSS.

Например, можно установить element.style.width :

Исходный код этой кнопки:

Например, для установки свойства z-index в 1000, нужно поставить:

innerHTML

Когда-то это свойство поддерживалось только в IE. Теперь его поддерживают все современные браузеры.

Оно содержит весь HTML-код внутри узла, и его можно менять.

Свойство innerHTML применяется, в основном, для динамического изменения содержания страницы, например:

className

Это свойство задает класс элемента. Оно полностью аналогично html-атрибуту «class».

Источник

Введение

Что такое Объектная Модель Документа (DOM)?

Объектная Модель Документа (DOM) – это программный интерфейс (API) для HTML и XML документов. DOM предоставляет структурированное представление документа и определяет то, как эта структура может быть доступна из программ, которые могут изменять содержимое, стиль и структуру документа. Представление DOM состоит из структурированной группы узлов и объектов, которые имеют свойства и методы. По существу, DOM соединяет веб-страницу с языками описания сценариев либо языками программирования.

Веб-страница – это документ. Документ может быть представлен как в окне браузера, так и в самом HTML-коде. В любом случае, это один и тот же документ. DOM предоставляет другой способ представления, хранения и управления этого документа. DOM полностью поддерживает объектно-ориентированное представление веб-страницы, делая возможным её изменение при помощи языка описания сценариев наподобие JavaScript.

Стандарты W3C DOM и WHATWG DOM формируют основы DOM, реализованные в большинстве современных браузеров. Многие браузеры предлагают расширения за пределами данного стандарта, поэтому необходимо проверять работоспособность тех или иных возможностей DOM для каждого конкретного браузера.

Например: стандарт DOM описывает, что метод getElementsByTagName в коде, указанном ниже, должен возвращать список всех элементов

DOM и JavaScript

Вначале JavaScript и DOM были тесно связаны, но впоследствии они развились в различные сущности. Содержимое страницы хранится в DOM и может быть доступно и изменяться с использованием JavaScript, поэтому мы можем записать это в виде приблизительного равенства:

API (веб либо XML страница) = DOM + JS (язык описания скриптов)

DOM спроектирован таким образом, чтобы быть независимым от любого конкретного языка программирования, обеспечивая структурное представление документа согласно единому и последовательному API. Хотя мы всецело сфокусированы на JavaScript в этой справочной документации, реализация DOM может быть построена для любого языка, как в следующем примере на Python:

Для подробной информации о том, какие технологии участвуют в написании JavaScript для веб, смотрите обзорную статью JavaScript technologies overview.

Каким образом доступен DOM?

Вы не должны делать ничего особенного для работы с DOM. Различные браузеры имеют различную реализацию DOM, эти реализации показывают различную степень соответствия с действительным стандартом DOM (это тема, которую мы пытались не затрагивать в данной документации), но каждый браузер использует свой DOM, чтобы сделать веб страницы доступными для взаимодействия с языками сценариев.

При создании сценария с использованием элемента

Источник

Объект документа document является родителем всех других объектов на веб-странице. Этот объект и представляет вашу веб-страницу.

Если вам нужно получить доступ к какому-то элементу на HTML странице, то прежде вам потребуется обратиться к объекту document.

Ниже представлено несколько примеров, как можно использовать объект документа для доступа и манипулирования HTML.

Поиск элементов HTML

МетодОписание
document.getElementById(id)Поиск элемента по идентификатору id
document.getElementsByTagName(имя)Поиск элемента по имени тега
document.getElementsByClassName(имя)Поиск элемента по имени класса

Изменение элементов HTML

МетодОписание
элемент.innerHTML = новое содержимоеИзменяет внутреннее содержимое элемента
элемент.атрибут = новое значениеИзменяет значение атрибута элемента
элемент.setAttribute(атрибут, значение)Изменяет значение атрибута элемента
элемент.style.свойство = новый стильИзменяет стиль элемента

Добавление и удаление элементов

МетодОписание
document.createElement(элемент)Создает HTML элемент
document.removeChild(элемент)Удаляет HTML элемент
document.appendChild(элемент)Добавляет HTML элемент
document.replaceChild(элемент)Заменяет HTML элемент
document.write(текст)Записывает во внешний поток HTML

Добавление обработчика события

МетодОписание
document.getElementById(id).onclick = function()<код>Добавляет код обработчика для события onclick

Поиск объектов HTML

Первый HTML DOM уровень 1 (1998) определял 11 HTML объектов, наборов объектов и свойств. Все они все еще актуальны в HTML5.

Позднее, в HTML DOM уровень 3 были добавлены новые объекты, наборы и свойства.

Источник

JavaScript HTML DOM Document

Объект документа HTML DOM является владельцем всех других объектов на веб-странице.

Объект документа HTML DOM

Объект Document представляет веб-страницу.

Если вы хотите получить доступ к любому элементу на HTML-странице, вы всегда начинаете с доступа к объекту document.

Ниже приведены примеры того, как можно использовать объект Document для доступа к HTML и манипулирования им.

Поиск элементов HTML

МетодОписание
document.getElementById(id)Поиск элемента по идентификатору элемента
document.getElementsByTagName(name)Поиск элементов по имени тега
document.getElementsByClassName(name)Поиск элементов по имени класса

Изменение элементов HTML

МетодОписание
element.innerHTML = new html contentИзменение внутреннего HTML-кода элемента
element.attribute = new valueИзменение значения атрибута элемента HTML
element.setAttribute(attribute, value)Изменение значения атрибута элемента HTML
element.style.property = new styleИзменение стиля элемента HTML

Добавление и удаление элементов

МетодОписание
document.createElement(element)Создание элемента HTML
document.removeChild(element)Удаление элемента HTML
document.appendChild(element)Добавление элемента HTML
document.replaceChild(element)Замена элемента HTML
document.write(text)Запись в выходной поток HTML

Добавление обработчиков событий

МетодОписание
document.getElementById(id).onclick = function()<code>Добавление кода обработчика событий в событие OnClick

Поиск объектов HTML

Первый уровень HTML DOM 1 (1998), определенные 11 объектов HTML, коллекции объектов и свойства. Они по-прежнему действительны в HTML5.

Позже, в HTML DOM Level 3, добавлено больше объектов, коллекций и свойств.

Источник

Одной из наиболее часто используемых функций в JavaScript является document.write. Можно сказать, что document.write получает строку и выводит ее на странице. Здесь необходимо только следить за одной вещью. Если страница полностью загрузилась и вызывается document.write, то вся страница будет очищена и на экране будет только результат работы document.write.

Мы уже видели различные свойства объекта document в действии. Например, document.forms возвращает массив всех форм на странице. Здесь также существует несколько свойств, подобных этому.

3. document.forms – массив, содержащий все формы на текущей странице;
4. document.images – массив, содержащий все изображения на текущей странице;
5. document.links – массив, содержащий все ссылки на текущей странице;
6. document.anchors – массив, содержащий все анкеры на текущей странице;
7. document.applets – массив, содержащий все апплеты на текущей странице;
8. document.styleSheets – массив, содержащий все таблицы стилей на текущей странице;
9. window.frames – массив, содержащий все фреймы на текущей странице.

Как мы видели в предыдущей лекции, почти все эти свойства можно продублировать с помощью document.getElementsByTagName. Чтобы получить все изображения на странице, можно воспользоваться, например, document.getElementsByTagName(‘IMG’);. Существует три подобные функции:

1. document.body и document.documentElement

Существует концепция, называемая «Тип документа», которая задает для Web- браузера определенный набор правил. Изменение типа документа заставляет некоторые свойства переместиться из document.body в document.documentElement, но только некоторые свойства и только для некоторых браузеров.

Проще говоря, это является полным беспорядком, поэтому две следующие функции (будем надеятся) выдадут позицию прокручивания и размеры окна независимо от браузера.

2. title, referer

Тремя последними свойствами документа являются title, referer и cookies. document.title и document.referer достаточно понятны. document.title содержит заголовок страницы. Его можно прочитать и изменить после полной загрузки документа. document.referer содержит просто URL страницы, которая привела пользователя на текущую страницу.

Поэтому, если вы щелкнули на ссылке, чтобы попасть на эту страницу, то document.referer будет содержать URL страницы, на которой находится ссылка.

Если вы пришли на эту страницу сразу, задавая ее в поле адреса браузера, то document.referer будет неопределен.

3. Сookie

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

cookie читают и записывают через document.cookie. В отличие от других свойств изменение document.cookie в действительности не перезаписывает, а добавляет к cookie. Поэтому, если требуется задать 5 cookie, то каждое из них задается с помощью document.cookie= “. »;. Формат cookie имеет свои особенности, поэтому мы рассмотрим несколько функций для выполнения этой задачи:

Если увеличить счетчик cookie несколько раз, обновить страницу, а затем проверить счетчик, то можно увидеть, что он остался таким же, как был до обновления страницы. Эти cookie будут сохранятся до тех пор, пока они не будут удалены из браузера или пока не пройдет 24 часа – cookie заданы на период одни сутки.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *