Можно ли задать класс CSS элемента с помощью JavaScript?

Я хочу сделать это:

e.className = t;

Где t - это имя стиля, который я определил в таблице стилей.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
0
2 795
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Да, это работает (с именем класса в виде строки, как упоминал Джона). Кроме того, вы можете установить атрибуты стиля непосредственно на объекте, используя интерфейс Стиль DOM уровня 2. например.,

button.style.fontFamily = "Verdana, Arial, sans-serif";

где button (предположительно) объект-кнопка. :-)

Ответ принят как подходящий

Если e является ссылкой на элемент DOM и у вас есть такой класс: .t {color:green;}, тогда вы хотите ссылаться на имя класса в виде строки:

e.className = 't';

Это не только работает, но и является лучшей практикой.

Вы определенно хотите отделить формат данных (xHTML) от дизайна (CSS) и поведения (javascript).

Поэтому гораздо лучше просто добавлять и удалять классы в JS в соответствии с событием, в то время как эстетические проблемы делегируются стилям css.

НАПР .: Окрашивание сообщения об ошибке в красный цвет.

CSS

.error
{
    color: red;
}

JS

var error=document.getElementById('error');
error.className='error';

Примечание:

  • Этот фрагмент - всего лишь пример. В реальной жизни для этого можно использовать js.
  • document.getElementById не всегда совместим. Лучше использовать JS-фреймворк, чтобы справиться с этим. Я лично использую JQuery.

Вот пример добавления и удаления класса с помощью jQuery.

// js
  $("p:first").addClass("t");
  $("p:first").removeClass("t");

// css
  .t {
    backgound: red
  }

Другие вопросы по теме