«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как правильно использовать getElementsByClassName и менять стили элементов в зависимости от событий?

Как правильно использовать getElementsByClassName и менять стили элементов в зависимости от событий?

Опубликовано 8 ноября 2024 г.
Просматривать:560

How to Correctly Use getElementsByClassName and Change Element Styles Based on Events?

Изменение стилей элементов с помощью getElementsByClassName

getElementsByClassName позволяет выбирать несколько элементов с одинаковым именем класса. В приведенном примере код предназначен для изменения цвета фона всех элементов div с определенным именем класса, когда событие происходит за пределами этих элементов div.

Диагностика проблем

В предоставленном коде есть несколько проблем:

  1. Неправильное использование getElementsByClassName: Синтаксис getElementsByClassName() возвращает коллекцию совпадающих элементов, а не отдельный элемент DOM. Чтобы изменить стиль каждого элемента, вам необходимо пройтись по коллекции.
  2. Неверный синтаксис HTML: Идентификатор элемента не может содержать пробелы, что делает идентификаторы переключателей цветов A и B недействительными. .

Решение

Чтобы решить эти проблемы, вы можете использовать следующее исправленное код:

window.onload = function() {
  var aElements = document.getElementsByClassName('a');
  var bElements = document.getElementsByClassName('b');

  document.getElementById('A').addEventListener('mouseover', function() {
    changeColor(aElements, 'red');
  });

  document.getElementById('B').addEventListener('mouseover', function() {
    changeColor(bElements, 'blue');
  });
};

function changeColor(elements, color) {
  for (var i = 0; i 

В этом исправленном коде:

  1. Мы просматриваем коллекции, возвращаемые getElementsByClassName, чтобы изменить стиль всех соответствующих элементов.
  2. Мы используем правильные идентификаторы без пробелов для идентификации триггерных элементов.
  3. Мы определяем функцию изменения цвета, чтобы применить желаемое изменение цвета к elements.

Дополнительные примечания

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

Заявление о выпуске Эта статья перепечатана по адресу: 1729726237. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3