Изучите свойства DOM в JavaScript

CSSBeginner
Практиковаться сейчас

Введение

В этом лабе участники изучат свойства модели объекта документа (DOM) в JavaScript, создав интерактивный HTML-документ и используя JavaScript для доступа к и управления различными атрибутами документа. Лаб предоставляет практический подход к пониманию основных свойств DOM, таких как заголовок документа, URL, ссылки, изображения и содержимое тела.

С помощью последовательного процесса сначала создается базовая структура HTML, а затем постепенно с использованием JavaScript осуществляется взаимодействие с разными свойствами документа. Анализируя методы доступа к заголовку документа, извлечение URL и ссылок, подсчет изображений, а также исследование свойств тела документа и cookie, участники получат практические знания о том, как JavaScript может динамически взаимодействовать с элементами веб-страницы и метаданными.

Создайте HTML-документ с базовой структурой

В этом шаге вы узнаете, как создать базовый HTML-документ, который будет служить основой для изучения свойств DOM в JavaScript. Мы будем использовать WebIDE для создания HTML-файла с простой структурой, включающей важные элементы.

Сначала перейдите в каталог ~/project в WebIDE. Создайте новый файл с именем index.html, щелкнув правой кнопкой мыши в проводнике файлов и выбрав "Новый файл".

Вставьте следующий HTML-код в файл index.html:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>DOM Properties Exploration</title>
  </head>
  <body>
    <h1>Welcome to DOM Properties Lab</h1>
    <p>This page will help us explore JavaScript DOM properties.</p>
    <img src="https://example.com/sample-image.jpg" alt="Sample Image" />
    <img src="https://example.com/another-image.jpg" alt="Another Image" />
  </body>
</html>

Разберём основные компоненты этого HTML-документа:

  • <!DOCTYPE html> объявляет это как HTML5-документ
  • <html lang="en"> задает язык документа
  • <head> содержит метаданные о документе
  • <title> задает заголовок страницы, который мы будем использовать в последующих шагах
  • <body> содержит видимое содержимое страницы
  • Мы включили два тега <img>, чтобы продемонстрировать свойства DOM, связанные с изображениями, в последующих шагах

Пример вывода при открытии этого файла в браузере:

[Веб-страница с заголовком "DOM Properties Exploration",
 отображающей "Welcome to DOM Properties Lab"
 и "This page will help us explore JavaScript DOM properties."]

Эта простая структура HTML предоставляет идеальную точку начала для нашего лабораторного исследования свойств DOM.

Получить доступ к свойству заголовка документа

В этом шаге вы узнаете, как получить доступ к свойству заголовка документа с использованием JavaScript. Мы будем основываться на HTML-файле, созданном на предыдущем шаге, и покажем, как получить и манипулировать заголовком документа.

Создайте новый файл с именем script.js в каталоге ~/project с использованием WebIDE. Добавьте следующий JavaScript-код:

// Access the document title
console.log("Document Title:", document.title);

// Modify the document title
function changeTitle() {
  document.title = "Updated DOM Properties Lab";
  console.log("New Document Title:", document.title);
}

// Add a button to demonstrate title change
const button = document.createElement("button");
button.textContent = "Change Title";
button.onclick = changeTitle;
document.body.appendChild(button);

Теперь обновите файл index.html, чтобы включить JavaScript-файл:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>DOM Properties Exploration</title>
  </head>
  <body>
    <h1>Welcome to DOM Properties Lab</h1>
    <p>This page will help us explore JavaScript DOM properties.</p>
    <img src="https://example.com/sample-image.jpg" alt="Sample Image" />
    <img src="https://example.com/another-image.jpg" alt="Another Image" />

    <script src="script.js"></script>
  </body>
</html>

При открытии этого HTML-файла в браузере вы увидите следующие действия:

Пример вывода в консоли браузера:

Document Title: DOM Properties Exploration

При нажатии кнопки "Change Title":

New Document Title: Updated DOM Properties Lab

Показанные ключевые концепции:

  • Свойство document.title возвращает текущий заголовок страницы
  • Вы можете динамически изменить заголовок документа с использованием JavaScript
  • Заголовок отображается в вкладке браузера и может быть изменен во время выполнения

Получить URL и ссылки документа

В этом шаге вы узнаете, как получить доступ к URL документа и извлечь информацию о ссылках с использованием свойств DOM JavaScript. Мы обновим файл script.js, чтобы продемонстрировать эти возможности.

Откройте файл script.js в WebIDE и добавьте следующий код:

// Retrieve and display the current document URL
console.log("Current Document URL:", document.URL);

// Get the number of links on the page
const linkCount = document.links.length;
console.log("Total Number of Links:", linkCount);

// Display information about all links
function displayLinkInfo() {
  const links = document.links;
  console.log("Link Information:");
  for (let i = 0; i < links.length; i++) {
    console.log(`Link ${i + 1}:`);
    console.log(`  Href: ${links[i].href}`);
    console.log(`  Text: ${links[i].text}`);
  }
}

// Add a button to show link information
const linkButton = document.createElement("button");
linkButton.textContent = "Show Link Details";
linkButton.onclick = displayLinkInfo;
document.body.appendChild(linkButton);

Обновите файл index.html, чтобы включить дополнительные ссылки:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>DOM Properties Exploration</title>
  </head>
  <body>
    <h1>Welcome to DOM Properties Lab</h1>
    <p>This page will help us explore JavaScript DOM properties.</p>

    <div>
      <a href="https://example.com">Example Website</a>
      <a href="https://labex.io">LabEx Learning Platform</a>
    </div>

    <img src="https://example.com/sample-image.jpg" alt="Sample Image" />
    <img src="https://example.com/another-image.jpg" alt="Another Image" />

    <script src="script.js"></script>
  </body>
</html>

Пример вывода в консоли браузера:

Current Document URL: file:///home/labex/project/index.html
Total Number of Links: 2

Link Information:
Link 1:
  Href: https://example.com
  Text: Example Website
Link 2:
  Href: https://labex.io
  Text: LabEx Learning Platform

Показанные ключевые концепции:

  • document.URL возвращает полный URL текущего документа
  • document.links предоставляет коллекцию всех ссылок на странице
  • Вы можете перебирать ссылки и получать доступ к их свойствам, таким как href и text

Подсчитать и отобразить изображения на странице

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

Откройте файл script.js в WebIDE и добавьте следующий код:

// Count the number of images on the page
const imageCount = document.images.length;
console.log("Total Number of Images:", imageCount);

// Function to display image details
function displayImageInfo() {
  const images = document.images;
  console.log("Image Information:");
  for (let i = 0; i < images.length; i++) {
    console.log(`Image ${i + 1}:`);
    console.log(`  Source: ${images[i].src}`);
    console.log(`  Alt Text: ${images[i].alt}`);
  }
}

// Create a button to show image details
const imageButton = document.createElement("button");
imageButton.textContent = "Show Image Details";
imageButton.onclick = displayImageInfo;
document.body.appendChild(imageButton);

// Add a simple image information display area
const infoDiv = document.createElement("div");
infoDiv.id = "image-info";
document.body.appendChild(infoDiv);

// Update the div with image count
infoDiv.textContent = `Number of Images: ${imageCount}`;

Обновите файл index.html, чтобы включить больше изображений с различными атрибутами:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>DOM Properties Exploration</title>
  </head>
  <body>
    <h1>Welcome to DOM Properties Lab</h1>
    <p>This page will help us explore JavaScript DOM properties.</p>

    <div>
      <a href="https://example.com">Example Website</a>
      <a href="https://labex.io">LabEx Learning Platform</a>
    </div>

    <div id="image-container">
      <img src="https://example.com/sample-image.jpg" alt="Sample Image" />
      <img src="https://example.com/another-image.jpg" alt="Another Image" />
      <img src="https://example.com/third-image.png" alt="Third Image" />
    </div>

    <script src="script.js"></script>
  </body>
</html>

Пример вывода в консоли браузера:

Total Number of Images: 3
Image Information:
Image 1:
  Source: https://example.com/sample-image.jpg
  Alt Text: Sample Image
Image 2:
  Source: https://example.com/another-image.jpg
  Alt Text: Another Image
Image 3:
  Source: https://example.com/third-image.png
  Alt Text: Third Image

Показанные ключевые концепции:

  • document.images предоставляет коллекцию всех изображений на странице
  • Вы можете получить доступ к свойствам изображений, таким как src и alt
    -Динамически создавать и манипулировать элементами страницы с использованием JavaScript

Показать свойства тела документа и cookies

В этом шаге вы изучите свойства тела документа и cookie в JavaScript, узнаете, как манипулировать содержимым страницы и работать с куки-файлами браузера.

Откройте файл script.js в WebIDE и добавьте следующий код:

// Demonstrate document body manipulation
function modifyBodyContent() {
  // Access and modify document body
  const body = document.body;
  console.log("Original Body Inner HTML:", body.innerHTML);

  // Create a new paragraph element
  const newParagraph = document.createElement("p");
  newParagraph.textContent =
    "This paragraph was dynamically added to the body!";
  body.appendChild(newParagraph);

  console.log("Updated Body Inner HTML:", body.innerHTML);
}

// Demonstrate cookie properties
function manageCookies() {
  // Set a new cookie
  document.cookie =
    "labExperience=JavaScript DOM; expires=Fri, 31 Dec 2023 23:59:59 GMT; path=/";

  // Display all cookies
  console.log("Current Cookies:", document.cookie);

  // Create a button to show cookies
  const cookieButton = document.createElement("button");
  cookieButton.textContent = "Show Cookies";
  cookieButton.onclick = () => {
    alert(`Cookies: ${document.cookie}`);
  };
  document.body.appendChild(cookieButton);
}

// Create buttons to trigger demonstrations
const bodyButton = document.createElement("button");
bodyButton.textContent = "Modify Body Content";
bodyButton.onclick = modifyBodyContent;
document.body.appendChild(bodyButton);

const cookieButton = document.createElement("button");
cookieButton.textContent = "Manage Cookies";
cookieButton.onclick = manageCookies;
document.body.appendChild(cookieButton);

Обновите файл index.html, чтобы обеспечить совместимость:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>DOM Properties Exploration</title>
  </head>
  <body>
    <h1>Welcome to DOM Properties Lab</h1>
    <p>This page will help us explore JavaScript DOM properties.</p>

    <div>
      <a href="https://example.com">Example Website</a>
      <a href="https://labex.io">LabEx Learning Platform</a>
    </div>

    <div id="image-container">
      <img src="https://example.com/sample-image.jpg" alt="Sample Image" />
      <img src="https://example.com/another-image.jpg" alt="Another Image" />
      <img src="https://example.com/third-image.png" alt="Third Image" />
    </div>

    <script src="script.js"></script>
  </body>
</html>

Пример вывода в консоли браузера:

// После нажатия на "Modify Body Content"
Original Body Inner HTML: [исходный HTML-контент]
Updated Body Inner HTML: [HTML-контент с добавленным новым абзацем]

// После нажатия на "Manage Cookies"
Current Cookies: labExperience=JavaScript DOM

Показанные ключевые концепции:

  • Доступ к и изменение document.body
    -Динамическое создание и добавление новых элементов
  • Установка и чтение куки-файлов браузера
  • Взаимодействие с свойствами документа с использованием JavaScript

Резюме

В этом лабораторном задании участники узнают, как исследовать свойства модели документа объектов (DOM) с использованием JavaScript, создав структурированный HTML-документ и реализовав различные методы доступа к свойствам. Лабораторная работа начинается с построения базового HTML-файла, который включает в себя важные элементы, такие как заголовок, тело и изображения, что служит основой для понимания взаимодействия с DOM.

Практическое упражнение guides learners through accessing different document properties such as title, URL, links, and image count, demonstrating how JavaScript can dynamically retrieve and manipulate web page metadata. By working through these steps, participants gain hands-on experience in examining and interacting with fundamental DOM properties, enhancing their understanding of client-side web development techniques.