«Единственный способ творить великие дела – это любить то, что ты делаешь»
JavaScript

Игра на «Морской Бой» на JavaScript: Простая Игра и Игра для Двоих


Продолжаем перемещаться по иерархической структуре DOM-дерева. Здесь будут рассмотрены свойства nextSibling и previousSibling, которые позволяют обратиться к следующему и предыдущему узлам, расположенных на одном уровне.



Свойство nextSibling - Обращение к следующему узлу

Свойство nextSibling служит для обращения к следующему узлу, расположенному по иерархии на одном уровне с исходным узлом (элементом) веб-документа.

Далее будет продолжена работа с примером из предыдущих заметок, где три тега img являются дочерними элементами тега div.

Фрагмент кода

<div id = "all_penguins">

<img src="img/peng_128.gif" id = "penguin_1" width="128" height="128" title="Крупный пингвин">

<img src="img/peng_64.gif" id = "penguin_2" width="64" height="64" title="Средний пингвин">

<img src="img/peng_32.gif" id = "penguin_3" width="32" height="32" title="Маленький пингвин">

</div>

 

<script type="text/javascript">

var element_start = document.getElementById('penguin_2'); /* возвращаем ссылку на 2-ой тег img, который выбираем по его id */

var element_next = element_start.nextSibling; /* обращаемся к следующему элементу - тегу img и результат заносим в переменную element_next */

document.write(element_next); /* выводим на экран переменную element_next */

</script>

Результат

В результате JavaScript выдал, что следующим узлом является текстовый объект. Хотя в коде мы видим тег img.

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

Далее уберем пробелы между тегами img и посмотрим на результат.

Фрагмент кода

<div id = "all_penguins">

<img src="img/peng_128.gif" id = "penguin_1" width="128" height="128" title="Крупный пингвин"><img src="img/peng_64.gif" id = "penguin_2" width="64" height="64" title="Средний пингвин"><img src="img/peng_32.gif" id = "penguin_3" width="32" height="32" title="Маленький пингвин">

</div>

 

<script type="text/javascript">

var element_start = document.getElementById('penguin_2'); /* возвращаем ссылку на 2-ой тег img, который выбираем по его id */

var element_next = element_start.nextSibling; /* обращаемся к следующему элементу - тегу img и результат заносим в переменную element_next */

document.write(element_next); /* выводим на экран переменную element_next */

</script>

Результат

Теперь все правильно: благодаря свойству nextSibling получилось выяснить, что следующим элементом после 2-го тега img является изображение.

Свойство previous - Обращение к предыдущему узлу

Свойство previousSibling служит для обращения к предыдущему узлу, расположенному по иерархии на одном уровне с исходным узлом (элементом) веб-документа.

Фрагмент кода

<div id = "all_penguins">

<img src="img/peng_128.gif" id = "penguin_1" width="128" height="128" title="Крупный пингвин"><img src="img/peng_64.gif" id = "penguin_2" width="64" height="64" title="Средний пингвин"><img src="img/peng_32.gif" id = "penguin_3" width="32" height="32" title="Маленький пингвин">

</div>

 

<script type="text/javascript">

var element_start = document.getElementById('penguin_2'); /* возвращаем ссылку на 2-ой тег img, который выбираем по его id */

var element_previous = element_start.previousSibling; /* обращаемся к предыдущему элементу - тегу img и результат заносим в переменную element_previous */

document.write(element_previous.id); /* выводим на экран id предыдущего тега img */

</script>

Результат

В результате мы получили идентификатор id первого тега img, то есть при помощи свойства previousSibling получили доступ к предыдущему узлу, находящемуся на одном уровне с текущим узлом документа в иерархии дерева DOM.

Отзывы и комментарии:

Комментариев нет...

Оставить отзыв:

Ваше Имя:

Текст комментария:

Ответьте на вопрос:

Сколько дней в Високосном году?


JavaScript и Web
Последние заметки
Популярные заметки