JavaRush /Курсы /JSP & Servlets /Работа с Document Object Model (DOM)

Работа с Document Object Model (DOM)

JSP & Servlets
7 уровень , 4 лекция
Открыта

5.1 document.getElementById()

Как ты знаешь, JavaScript создали для того, чтобы добавить немного анимации на HTML-страницы. Пока мы практически ничего не сказали об этом. Как же добавить эту самую анимацию? Как, например, поменять цвет какого-нибудь элемента?

Чтобы поменять цвет элемента, сначала нужно этот элемент найти. Для этого есть функция document.getElementById(); Ты в твоем HTML прописывай id у нужного элемента, а затем обращаетесь к нему из JavaScript. Пример:


<head>
 <script>
        function changeImage()
        {
           var image = document.getElementById("image123");
            image.src = "new-image.png";
        }
 </script>
</head>
<body>
    <img id="image123" src="big-image.png" onclick="changeImage()">
</body>

После того как пользователь кликает мышкой по картинке, вызывается функция changeImge(). У нее внутри мы получает элемент image по его ID, и затем меняем у него значение src атрибута на новое. Что приведет к тому, что элемент img загрузит новую картинку.

5.2 document.createElement()

Кроме получения элемента, мы можем еще создавать новые элементы и удалять существующие.

Создавать элементы очень просто. Для этого нужно сделать два действия: а) создать элемент, б) добавить его в нужное место документа. Выглядит это обычно примерно так:


<head>
 <script>
        window.onload = function ()   {
            var image = document.createElement("IMG");
            var image.src = "big-image.png";
            document.body.addAfter(image);
        }
 </script>
</head>
<body>
</body>

5.3 Метод window.navigate()

Есть еще один очень полезный метод – это метод window.navigate(). С его помощью ты можешь заставить браузер загрузить новую страницу вместо текущей. Просто передай ее URL в этот метод и вызови его. Пример:


  <body> 
    <img src="big-image.png" onclick="window.navigate('https://google.com');"> 
  </body> 

В примере выше, после того как пользователь кликнет на картинке, в текущую вкладку загрузится страница google.com.

5.4 Текущий URL

И еще одна полезная вещь. Иногда скрипту бывает очень нужно узнать текущий URL страницы. Например, один и тот же скрипт может быть добавлен в разные страницы. Как это сделать?

Для этого есть специальное свойство document.location.href


var currentURL = document.location.href;
Комментарии (8)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Ioanna Polyak Уровень 43
30 июля 2025
вфпфпаи
jvatechs Уровень 111 Expert
28 мая 2023
насчет window.navigate() : он не работает на современных браузерах, сейчас разве что на Internet Exploler, поэтому неактуально. поэтому следует заменить это:

onclick="window.navigate('https://google.com');"

на вот это:

onclick="window.location.href='https://google.com';"
jvatechs Уровень 111 Expert
28 мая 2023
Что-то у меня этот скрипт ну никак не заработал:

    <script>
        window.onload = function ()   {
            var image = document.createElement("IMG");
            var image.src = "big-image.png";
            document.body.addAfter(image);
        }
    </script>

пришлось переделать под вот это:

<script>
    window.onload = function () {
        var image = document.createElement("IMG");
        image.src = "big-image.png";
        document.body.appendChild(image);
    }
</script>
Prokhorov Artem Уровень 111
26 февраля 2023
А зачем писать

img scr="big-image.png" onclick="window.navigate('https://google.com');"
когда мы можем поместить img внутрь тега a и будет тоже самое, ток без js
eldar516 Уровень 100
10 июля 2022
метод navigate не работает, сработало window.location.href = 'http://www.google.com';
Anonymous #2436575 Уровень 29
31 августа 2022
navigate это родной метод Internet Explorer`a, некоторые браузеры также работают с ним. Chrome не из их числа (насколько я помню, но могу ошибаться). window.location - стандартизированный метод перехода.
Сергей Уровень 22
19 июня 2022
11 строка, img id="new-image.png" ... там разве не "image123" ?
Тимофей Уровень 51
22 июля 2022
Да тут ошибка. Я протестил.