СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Разработка кода ИС Практическая работа №38

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Разработка кода ИС Практическая работа №38»

Практическое занятие 38

Тема: «Работа с элементами страницы в JavaScript»

Цель работы: приобретение навыков получения и использования элементов страницы в JS.

Краткие теоретические основания выполнения задания Работа с innerHTML, outerHTML

В прошлом уроке мы с вами учились считывать и записывать значения атрибутов, а теперь будем делать тоже самое, но уже со внутренним содержимым тегов. Это делается с помощью свойства innerHTML, которое можно считывать и перезаписывать, меняя тем самым содержимое тегов.


В примере ниже у нас есть абзац. Давайте сменим ему текст с помощью свойства innerHTML. Для этого получим ссылку на этот абзац с помощью getElementById в переменную elem. Затем таким образом - elem.innerHTML = 'Новый текст' - запишем в него новый текст:


id="test"Текст абзаца.

type="submit" onclick="func()"

//Функция func срабатывает по клику на кнопку input: function func() {

var elem = document.getElementById('test'); //получаем наш абзац elem.innerHTML = '!'; //записываем в него новый текст

}


HTML код станет выглядеть так:


id="test"!

type="submit" onclick="func()"

Можно записывать не только текст, но и теги и они будут работать (в нашем случае текст станет жирным):

id="test"Текст абзаца.

type="submit" onclick="func()" function func() {

var elem = document.getElementById('test'); elem.innerHTML = '!';

}


HTML код станет выглядеть так:


id="test"!

type="submit" onclick="func()"


Кроме свойства innerHTML существует также свойство outerHTML, которое перезаписывает не только внутренний текст тега, но и сам тег. Смотрите пример:


id="test"Текст абзаца.

type="submit" onclick="func()" function func() {

var elem = document.getElementById('test'); elem.outerHTML = '!';

}


HTML код станет выглядеть так:


!

type="submit" onclick="func()"


Как вы видите, наш абзац исчез и заменился на тег b.


Работа с getElementsByTagName

Во всех примерах выше мы с вами работали с методом getElementById, который получал только одно свойство по его атрибуту id. Однако существуют и другие способы получения свойств, к примеру, с помощью метода getElementsByTagName, который получает группу тегов по их имени. Например, можно получить все абзацы p или все заголовки h2.


Учтите только один нюанс - наш метод возвращает не одно свойство, а массив свойств. Получим, к примеру, все абзацы в переменную elems:


Текст абзаца.

Текст абзаца.

Текст абзаца.

type="submit" onclick="func()" function func() {

var elems = document.getElementsByTagName('p');

}


В переменной elems теперь лежит массив свойств, это значит, что elems[0] - это первый абзац,

elems[1] - второй и так далее (нумерация с нуля).


Мы можем убедится в этом, если сделаем так: elems[0].innerHTML = '!' - в этом случае первый абзац сменит свой текст.


Давайте поменяем текст всех трех абзацев:


Текст абзаца.

Текст абзаца.

Текст абзаца.

type="submit" onclick="func()" function func() {

//Получаем массив абзацев в переменную elems: var elems = document.getElementsByTagName('p');

elems[0].innerHTML = '1'; //первому абзацу ставим текст '1' elems[1].innerHTML = '2'; //второму абзацу ставим текст '2' elems[2].innerHTML = '3'; //третьему абзацу ставим текст '3'

}


HTML код станет выглядеть так:


1

2

3

type="submit" onclick="func()"


Учтите, что менять одновременно все свойства как-нибудь так elems.innerHTML = '!' не получится (потому что elems - массив). Необходимо или вручную перебрать все свойства, как это сделано в примере выше, или воспользоваться циклом.


В следующем примере мы сменим содержимое всех абзацев на страницы на '!', воспользовавшись для этого циклом for:


Текст абзаца.

Текст абзаца.

Текст абзаца.

type="submit" onclick="func()" function func() {

var elems = document.getElementsByTagName('p'); for (var i = 0; i

elems[i].innerHTML = '!';

}

}


HTML код станет выглядеть так:


!

!

!

type="submit" onclick="func()"

Обращение к свойствам через свойства document

Некоторые теги страницы можно не получать методами типа getElementById, а обратиться к ним как свойствам объекта document. К примеру, к тегу можно обратиться так: document.body, а к тегу

- вот так: document.head. Такое работает не для всех тегов, а только для избранных.


Учтите, что нельзя получить доступ к тому свойству, которого еще не существует в момент выполнения скрипта. Поэтому, если скрипт находится в , то в нем недоступен document.body.


В следующем примере первый alert выведет null:


HTML

alert(document.body); //null, так как body еще нет

alert(document.body); //body уже есть