До сих пор мы получали доступ к вполне определённому объекту. Однако, бывает нужно получить доступ к абсолютно любому объекту (порой, заранее неизвестному) HTML . Вот как раз об этом и написана эта небольшая статья.
До сих пор мы получали доступ к вполне определённому объекту. Однако, бывает нужно получить доступ к абсолютно любому объекту (порой, заранее неизвестному) HTML. Вот как раз об этом и написана эта небольшая статья.
Для доступа к любому объекту HTML в JavaScript существует свойство у объекта Document, которое называется all. Это свойство является массивом. Сейчас я Вам предлагаю найти какую-нибудь HTML-страничку и вставить туда следующий скрипт:
document.write(document.all.length);Будьте внимательны: данный скрипт должен вызываться в конце страницы! Надеюсь, Вы помните правило: пока объект не существует - с ним нельзя работать. Поэтому прежде, чем работать с HTML-объектами, необходимо, чтобы они сначала появились.
Теперь давайте выведем все объекты, которые имеются на странице. Так как свойство all - это массив, то обращаться с ним надо, как с массивом:
var str = "";
for (i = 0; i < document.all.length; i++)
str += document.all[i] + "<br />";
document.write(str);Здесь мы получаем все объекты на странице и записываем их в переменную str. После того, как цикл пройден, мы выводим эту переменную.
Теперь давайте решим простую задачу. Давайте изменим значения всех элементов p (абзац) на слово "JavaScript". Пишем такой скрипт:
for (i = 0; i < document.all.length; i++) {
var obj = document.all[i];
if (obj instanceof HTMLParagraphElement)
obj.innerHTML = "JavaScript";
}Теперь обсудим данный скрипт. Вначале обычный цикл, потом мы переменной obj присваиваем текущий объект HTML-страницы, находящийся в массиве all. Дальше с помощью оператора instanceof мы проверяем принадлежность этого объекта к классу HTMLParagraphElement. И если этот объект является элементов p, то с помощью свойства innerHTML меняем значение внутри тега <p> на "JavaScript". Вот такой незамысловатый скрипт.
До скорых встреч!
