Объект Document является корневым элементом для всего DOM дерева. Свойство document.documentElement ссылается на тег <html>, который выступает в роли корневого элемента документа. Свойство document.body соответствует тегу <body>, который в большинстве случаев представляет больший интерес, чем его родительский тег <html>. Свойство body объекта Document представляет собой особое удобное свойство, через которое предпочтительно обращаться к тегу <body> HTML документа.
document.getElementsByTagName("body")[0];
Это выражение вызывает метод getElementsByTagName() и выбирает первый элемент полученного массива. Вызов getElementsByTagName() возвращает массив всех элементов <body> в документе. HTML документы могут содержать только один тег <body>, поэтому мы знаем, что нас интересует первый элемент полученного массива. Метод getElementsByTagName() может использоваться для получения списка HTML элементов любого типа. Чтобы, например, найти все таблицы в документе, необходимо сделать следующее:
var tables = document.getElementsByTagName("table"); alert("Количество таблиц в документе: " + tables.length);
Обратите внимание: поскольку HTML теги нечувствительны к регистру, строки, передаваемые в getElementsByTagName(), также нечувствительны к регистру. То есть предыдущий код находит теги <table>, даже если в коде они выглядят как <TABLE>. Метод getElementsByTagName() возвращает элементы в том порядке, в ко тором они расположены в документе. И наконец, если передать методу getElementsByTagName() специальную строку "*", он вернет список всех элементов в порядке их присутствия в документе.
var link = document.body.getElementsByTagName("a")[0]; console.log(link.href);
Для доступа к элементам страницы чаще всего используют идентификаторы элементов - атрибут "id". На странице располагаются несколько абзацев с идентификаторами "p1", "p2", … "p10". Сценарию необходимо перебрать все элементы и поменять цвет текста в них на заданный. Эта задача решается следующим образом:
<p id="p1">Абзац 1</p> <p id="p2">Абзац 2</p> ... <p id="p10">Абзац 10</p> <script type="text/javascript"> for (var i=1; i<=10; i++) document.getElementById("p"+i).style.color="red"; // поменять цвет текста на красный </script>
Получив доступ к элементу мы можем выполнять над ним различные операции. В частности:
Для изменения содержимого элемента можно использовать 2 свойства элементов:
Свойство innerText используется как для чтения, так и для записи текстового содержимого элемента. Если свойству innerText присвоить в качестве значения строку "Это <b>полужирный</b> текст", то строка появится на странице без изменений. Это говорит о том, что свойство innerText не интерпретируется браузером при выводе на страницу.
Для того, чтобы разметка HTML интерпретировалась браузером, необходимо воспользоваться свойством innerHTML. Например, нам необходимо вывести на страницу строку "Да здравствует Мировая Революция", где слова "Мировая Революция" должны иметь полужирное начертание. Ниже приводится пример реализации поставленной задачи с использованием обоих свойств (innerText и innerHTML):
Листинг: Изменение содержимого элементов
<p id="lozung1"></p> <p id="lozung2"></p> <script type="text/javascript"> lozung1.innerText="Да здравствует <b>Мировая Революция</b>!"; // используется innerText alert("Используется свойство 'innerText'"); lozung2.innerHTML="Да здравствует <b>Мировая Революция</b>!"; // используется innerText alert("Используется свойство 'innerHTML'"); </script>
Для изменения стиля элемента используется свойство style. Это свойство, в свою очередь, является объектом, содержащим множество свойств, соответствующих атрибутам стиля элемента в CSS. Правда синтаксис записи свойств стиля в JavaScript и в CSS несколько отличается. Ниже приведены правила, следуя которым вы сможете преобразовать названия свойств стилей из CSS в JavaScript:
все простые свойства стилей CSS (такие как "color", "border", "padding" и т.п.) записываются без изменений в нижнем регистре; составные названия свойств стилей CSS (такие как "font-size", "background-color") записываются без символов "-", а слово, следующее за ним приписывается с заглавной буквы: fontSize, backgroundColor, listStyleType и т.д. Таким образом, для того, чтобы, например, установить толщину верхней границы некоторого элемента с идентификатором "someElement" равной 0.5 сантиметра, необходимо использовать следующий код:
someElement.style.borderTopWidth = "0.5cm";
Свойство document.cookie содержит все установленные Cookie.
Метод write() объекта document позволяет вывести на страницу строку текста с HTML разметкой. Вызов этого метода необходимо размещать в блоке сценария, располагающегося в теле страницы. Если метод document.write() используется некоторой функцией, то вызов этой функции так же необходимо размещать в теле документа, тогда как объявление функции может располагаться в заголовке страницы или даже во внешнем файле сценария.
Листинг: Использование метода 'document.write()'
<body> <script type="text/javascript"> for(var i=1; i<=7; i++) { document.write ("<font size='"+i+"'>Text</font><br />"); } </script> </body>
Коллекция – это своего рода массив объектов, проиндексированный не только по числовым номерам элементов, но и по их именам, и имеющий свойства и методы. Объект document содержит внутри себя множество подчиненных объектов и коллекций. Ниже перечислены свойства, возвращающие ссылки на них, и приведены описания соответствующих объектов и коллекций.
Свойство-ссылка