Лекция: Коллекции и подчиненные объекты объекта document
Обращение к элементам страницы
Объект document предоставляет доступ к отдельным элементам Web-страницы. Если элемент страницы имеет уникальное имя, то можно использовать прямое обращение как к отдельному объекту:
image1.outerHTML;
В остальных случаях обращение происходит через коллекции. Коллекция – это объект, который используется для хранения других объектов и отличается от ассоциативного массива объектов наличием собственных свойств и методов.
Рассмотрим, например, коллекцию images, которую включает в себя объект document. Получить доступ к отдельным ее элементам можно по порядковому номеру или ключу.
document.images.item(1);
document.images.item(«iamge1») ;
Индекс элемента коллекции помещается не в квадратных, а в круглых скобках, потому что он является аргументом метода item(), поддерживаемого всеми коллекциями. Имя этого метода можно опускать.
document.images(1);
document.images(«image1»);
Все элементы Web-страницы нумеруются в порядке их появления в HTML-коде. А некоторым элементам атрибутом ID задаются уникальные имена.
<img src=«img1.gif» id=«image1»>
<script type=«text/javascript»>
var someImage = document.images(«image1»);
</script>
Коллекция all представляет все элементы Web-страницы. К элементам этой коллекции можно обращаться по номеру в порядке появления в HTML-коде или по имени.
document.all(8); document.all(«iamge1»)
Атрибут ID требует уникальности имен всех элементов, но только формально. Реально же на странице могут встретиться два или более элемента с одинаковыми именами. В таком случае нужно будет указать второй индекс:
document.all(«image1», 2)
Иначе document.all(«image1») вернет коллекцию всех изображений с именем image1. Все коллекции имеют свойство length — количество элементов коллекции. Надо отметить, что элементы коллекции нумеруются с нуля.
Объект document содержит внутри себя множество подчиненных объектов и коллекций. В следующей таблице приведены описания соответствующих объектов и коллекций.
Свойство | Описание |
all | Все элементы страницы, включая теги <html>, <head>, <title> и <body>. |
anchors | Все «якоря» страницы |
embeds | Все расширения, внедренные в страницу. |
forms | Все Web-формы. |
images | Все изображения на странице. |
layers | Все слои страницы. |
links | Все гиперссылки на странице. |
location | Объект location для данного документа. |
scripts | Все скрипты, внедренные в страницу. |
selection | Объект selection, представляющий выделенный пользователем текст. |
styleSheets | Все таблицы стилей встроенные или привязанные к странице. |
Коллекция all имеет дополнительный метод tags, позволяющий фильтровать элементы коллекции по их тегу. В качестве параметра метод принимает строковое значение тега.
document.all.tags(«H1»)
Данное выражение вернет ссылку на коллекцию, содержащую только заголовки первого уровня. Такой же метод поддерживает коллекция links. В следующем примере используется массив all, содержащий все элементы документа для вывода списка используемых на странице тегов.
<!--пример pr24: список используемых на странице тегов -->
<html> <head>
<title> Список используемых на странице тегов </title>
<script type=«text/javascript»>
function findtags()
{var tag;
var tags=«страница содержит следующие теги»;
for(i=0;i<document.all.length;i++)
{tag=document.all(i).tagName;
tags=tags+" \r"+tag;}
alert(tags);
return tags;}
</script>
</head>
<body onload=«findtags()»>
<h2 >Вывод списка используемых на
странице тегов в диалоговое окно </h2>
</body> </html>
Вывод списка используемых на странице тегов в диалоговое окно
страница содержит следующие теги
HTML
HEAD
TITLE
SCRIPT
BODY
H2
Метод getElementByName возвращает коллекцию элементов со значением атрубута NAME, переданным в качестве параметра. Атрибут NAME применяется в современном HTML редко. Метод getElementByTagName возвращает коллекцию элементов, созданных посредством тега, переданного в качестве параметра. Пример:
document.getElementByName(«someimage»)
document.getElementByTagName(«H1»)