Как заменить класс у элемента js
Перейти к содержимому

Как заменить класс у элемента js

  • автор:

Изменить class для элемента с помощью JavaScript/jQuery

Современный HTML5 сильно улучшается и тем самым дает больше возможностей для JavaScript. В этой записи я покажу как можно изменять, добавить или удалить класс (class) для элементов с помощью JavaScript или jQuery.

HTML для демо

Допустим у нас есть такой элемент, у которого есть три класса «test1», «test2» и «hello-world» и id «myel».

Текст внутри элемента

Это пример будет использоваться для JavaScript и jQuery решений ниже.

JavaScript решение

Современные браузеры добавили новые способы управления классами для элементов, например classList.

Ниже предоставлен пример его работы с официального сайта MDN:

var elem = document.querySelector("#clock") //Выведем классы console.log(elem.classList); //DOMTokenList ["example", "for", "you"] //Добавим классы elem.classList.add("ok", "understand"); console.log(elem.classList); //DOMTokenList ["example", "for", "you", "ok", "understand"] //Переключим классы elem.classList.toggle("you"); elem.classList.toggle("he"); console.log(elem.classList); //DOMTokenList ["example", "for", "ok", "understand", "he"] //Проверим класс console.log(elem.classList.contains("example")); //true console.log(elem.classList.contains("lol")); //false //И удалим классы elem.classList.remove("example", "for", "understand", "he"); console.log(elem.classList); //DOMTokenList ["ok"]

Современное HTML решение используя classList

Для начала нам нужно найти сам элемент с помощью document.getElementById() и далее использовать метод classList . Выглядит это все следующим образом:

// Добавить "test3" в список классов document.getElementById("myel").classList.add('test3'); // Удалим test2 из списка всех классов document.getElementById("myel").classList.remove('test2'); // если у элемента класс test1? // вернет "true" потому что он действительно есть if ( document.getElementById("myel").classList.contains('test1') ) // Класс "dd-11" будет добавляться и убираться document.getElementById("myel").classList.toggle('dd-11');

В целом весь код выше в комментариях и вам должно понять. Но вот еще небольшое разъяснение:

  • add() — добавляет новый класс
  • remove() — удаляет указанный класс
  • contains() — проверяет существование класса
  • toggle() — ставит и удаляет класс, этот метод можно использовать для например нажатия на кнопку, чтобы у элемента ставился и убирался класс

Если лишь одно НО: Internet Explorer до 10 версии не поддерживают метод classList. Если для вас это важно, то лучше воспользоваться другими способами, которые я буду описывать ниже в этом посте. Но не забывайте, что веб очень быстро улучшается и уже есть первые попытки IE к поддержке этого метода, но лучше пока что не рисковать.

100% рабочий способ, поддерживаемый всеми браузерами (кроссбраузерный)

Выглядит он вот так:

document.getElementById("myel").className = "wow";

Мы используем className для манипуляции классами элемента «myel». Есть лишь один минус этого способа — он заменит все текущие классы элемента на «wow».

Самое важное в этом способе — это его кроссбраузерность.

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

jQuery

В jQuery все упрощенно до невозможности и работает кроссбраузерно.

Например, чтобы добавить класс «test7», нужно воспользоваться методом addClass():

$("myel").addClass("test7");

Чтобы удалить его, нужно использовать removeClass():

$("myel").removeClass("test7");

Если вы хотите заменить все классы на один единственный, то нужно использовать метод attr():

$("myel").attr("class", "test3 test4");

И теперь у «myel» будет только два класса, «test3» и «test4».

Вывод

А что вы используете чаще? JavaScript или jQuery?

Какой способом вам нравится больше всего и почему?

Курсы javascript

Конструкция работает, но (что и логично) не совсем правильно:

     .xxx < width: 50px; height: 50px; background: blue; margin: 10px; float: left; >.yyy     

Последний раз редактировалось dmitry111, 13.02.2013 в 07:29 .

Как изменить класс элемента с помощью javascript?

strangerintheq

Fatal error: Smarty error: [in ./inc/arch7/index.tpl line 530]: syntax error: unrecognized tag: el.classList.remove(‘havesubchild’) (Smarty_Compiler.class.php, line 446) in /home/user3124/grazvalda.websolutions.pp.ua/inc/frontend/smarty/libs/Smarty.class.php on line 1093

Grapeoff

Это уже проблема не моего кода, а того, куда вы его засунули

SmthTo

asd1982, откройте документацию Smarty. Посмотрите, как там вставлять JS-код в шаблонах.

Как заменить класс у элемента js

*

Частная коллекция качественных материалов для тех, кто делает сайты

  • Creativo.one2000+ уроков по фотошопу
  • Фото-монстр300+ уроков для фотографов
  • Видео-смайл200+ уроков по видеообработке
  • Жизнь в стиле «Кайдзен» Техники и приемы для гармоничной и сбалансированной жизни
  • Главная»
  • Уроки»
  • Уроки jQuery для начинающих

В этой рубрике Вы найдете уроки по Javascript библиотеке jQuery.

Анимация набора текста на jQuery

Сегодня мы бы хотели вам рассказать о библиотеке TypeIt — бесплатном jQuery плагине. С её помощью можно имитировать набор текста. Если всё настроить правильно, то можно добиться очень реалистичного эффекта.

Автор/переводчик: Станислав Протасевич
Сложность:
Создан: 26 Июля 2017 Просмотров: 40607 Комментариев: 0

Временная шкала на jQuery

jQuery плагин для создания временной шкалы.
Автор/переводчик: Станислав Протасевич
Сложность:
Создан: 5 Июня 2017 Просмотров: 23100 Комментариев: 0

Заметка: Перезагрузка и редирект на JavaScript

Быстрая заметка, где вы сможете найти парочку JS сниппетов для перезагрузки и перенаправления пользователей через JavaScript.

Автор/переводчик: Станислав Протасевич
Сложность:
Создан: 3 Июня 2017 Просмотров: 16351 Комментариев: 0

Рисуем диаграмму Ганта

jQuery плагин для создания диаграммы Ганта.
Автор/переводчик: Станислав Протасевич
Сложность:
Создан: 30 Мая 2017 Просмотров: 19099 Комментариев: 0

AJAX и PHP: загрузка файла

Пример того как осуществить загрузку файла через PHP и jQuery ajax.
Автор/переводчик: Станислав Протасевич
Сложность:
Создан: 24 Мая 2017 Просмотров: 66867 Комментариев: 0

Stimed — стили в зависимости от времени суток

Интересная библиотека с помощью которой можно задать определённым элементам страницы особые стили в зависимости от времени суток.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *