@Yonghwa
121

Как работает навигация по DOM?

Вот код.

<!DOCTYPE html>
<html lang="en">
  <head>
    <title></title>
  </head>
    <body>
      <h1 id="heading1">My Heading</h1>
      <p id="paragraph1">This is some text in a paragraph</p>
      <script>
        var h1Element = document.getElementById("heading1");
        h1Element.style.color = "red";
        var pElement;
        if (h1Element.nextSibling.nodeType == 1) {
          pElement = h1Element.nextSibling;
        } else {
          pElement = h1Element.nextSibling.nextSibling;
        }
          pElement.style.color = "red";
      </script>
    </body>
  </html>


На красный цвет меняется параграф, но я не совсем понимаю, что значит nodeType = = 1, nextSibling.nextSibling.
  • Вопрос задан
  • 231 просмотр
Пригласить эксперта
Ответы на вопрос 1
@AndryG
Попробуйте вот такой код.
<!DOCTYPE html>
<html lang="en">
  <head>
    <title></title>
  </head>
    <body>
      <h1 id="heading1">My Heading</h1>
      <p id="paragraph1">This is some text in a paragraph</p>
      <script>
        var h1Element = document.getElementById("heading1");
        h1Element.style.color = "red";
        var pElement, color;
        if (h1Element.nextSibling.nodeType == 1) {
          pElement = h1Element.nextSibling;
          color = "green";
        } else {
          pElement = h1Element.nextSibling.nextSibling;
          color = "blue";
        }
        pElement.style.color = color;
      </script>
    </body>
  </html>


h1Element.nextSibling.nodeType == 1 проверяет "сосед элемента h1 является элементом (не текстом и не комментом, а "тегом")"

Соседом h1 является сейчас текст "перенос строки с пробелами" и параграф будет синий.
Если разрыв между параграфом и заголовоком уберете
<h1 id="heading1">My Heading</h1><p id="paragraph1">This is some text in a paragraph</p>
, то параграф позеленеет - начнет работать другая ветка условия.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы