Знаете ли вы, что клиентский JavaScript - это действительно весело?

До недавнего времени мне не удавалось много с этим поиграть. Я так хорошо провел время, что хотел поделиться тем, что узнал. Не позволяйте JS запугать вас! Я долгое время избегал интерфейсной веб-разработки, потому что считал, что объем информации, необходимый мне для продуктивной работы, просто огромен и непомерно высок. Оказывается, основы совсем не так уж плохи.

Некоторые концепции:

Это будет иметь наибольший смысл, если вы хоть немного разбираетесь в HTML. Вот быстрое напоминание:

теги

JavaScript предоставляет возможность манипулировать тегами HTML (элементами, на языке JS) множеством способов. JS позволит вам получить тег, который уже существует на странице, или вы можете создать новый и прикрепить его туда, где хотите.

классы

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

id

Напротив, идентификатор - это уникальный идентификатор тега. Использование идентификатора позволит вам получить конкретный тег, когда он вам понадобится. Это удобно, например, для ввода данных в определенные поля.

Давай попробуем

Нам понадобятся два файла. Если вам нужна среда для мгновенной разработки, попробуйте сделать ремикс this Glitch project! Вы также можете создавать и редактировать файлы на своем локальном компьютере. Выбирайте то, что вам удобнее.

  • index.html
  • script.js

Если вы пишете этот код как локальные файлы на своем компьютере, вот HTML-код, который вы можете вставить в index.html файл. Если вы редактируете в Glitch, я уже добавил HTML для вас.

<html>
  <head>
    <title>Hello!</title>
    
    <!-- import the webpage's javascript file -->
    <script src="script.js" defer></script>
    
  </head>  
  
  <body>
    <h1 id="header">Hi there!</h1>
  </body>
</html>

Это простая оболочка страницы. Это будет выглядеть примерно так:

Если вы новичок в JavaScript, то важным элементом является тег script:

<script src="script.js" defer></script>

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

И это все, что касается HTML. Теперь о хороших моментах.

Изменение существующих элементов

Давайте изменим заголовок. Начните с добавления этого в script.js:

var header = document.getElementById("header");

getElementById() берет наш тег заголовка и сохраняет его в переменной header. Как только мы получим заголовок, его содержимое будет легко переустановить. Добавьте эту строку:

header.textContent = "HELLO I AM SPEAKING TO YOU VIA JAVASCRIPT";

Загрузите index.html (в Glitch нажмите «Показать»), и вас встретит яркий новый текст:

Бум! Вы разработчик JavaScript. Есть и другие функции для выполнения аналогичных задач:

  • document.getElementsByTagName() возвращает массив всех тегов с заданным именем. Если вы хотите воздействовать на все ссылки (a), вы можете сделать это таким образом.
  • document.getElementsByClassName() предоставит вам массив всех тегов данного класса.

Создание новых элементов

Но это не ограничивается изменением существующего HTML. JavaScript также позволит вам создавать новые элементы. Мы создадим новый тег p с некоторым текстом:

var p = document.createElement("p");
p.textContent = "Maybe JavaScript isn't so scary after all.";

Давайте возьмем тег body

var bodyTag = document.body;

И добавьте наш новый текст абзаца:

bodyTag.appendChild(p);

Когда мы проверяем нашу страницу, она должна выглядеть так:

Довольно круто, да? Имея всего несколько функций, у вас будет достаточно для создания динамических веб-страниц, управляемых сценариями. Вот ссылка на проект Glitch с готовым кодом для справки.

Удачи с новыми инструментами!

Подробнее:

Я в долгу перед этими руководствами, которые легли в основу моего ускоренного курса по фронтенду JS. Если вам понравилось это короткое вступление, обязательно попробуйте глубже.





Другие истории: