Как установить элемент для нескольких классов?
Исходная попытка:
element.setAttribute("class","class1","class2");
element.className="class1 , class2";
element.class="class1 , class2";
Как установить элемент для нескольких классов?
Исходная попытка:
element.setAttribute("class","class1","class2");
element.className="class1 , class2";
element.class="class1 , class2";
Просто установите атрибут как обычно. Он просто устанавливает атрибут для любой строки, которую вы передаете, он не знает каких-либо специальных правил для того, как обрабатывается значение.
Атрибут присваивает пробелу список классов, поэтому:
element.setAttribute("class","class1 class2");
Однако... более старые версии (я думаю, 7 и ниже) Internet Explorer имеют серьезные ошибки в их реализации setAttribute
, поэтому не используйте его. Вместо этого используйте свойство className
.
element.className = "class1 class2";
Обратите внимание, что это классы HTML. Они используют вне применения стилей. Нет такой вещи, как класс CSS (хотя есть селектора классов, другие селектора, наборы правил и свойства, все из которых (некорректно и смутно) называются "классами" в какой-то момент).
Атрибут className
- это список значений, разделенных пробелами.
Попробуйте следующее:
document.getElementById("MyElement").className = "class1 class2";
(обратите внимание на пробел вместо запятой между двумя именами)
Или, если вы хотите добавить к уже существующим классам:
document.getElementById("MyElement").className += " class1 class2";
Не используйте запятые. Просто установите имя класса с пробелами между несколькими классами. Я бы использовал jQuery addClass method - если вы используете jQuery:).
если вы хотите добавить (не уничтожить текущие классы), я бы сделал
element.className = element.className + " anotherclass yetanotherclass"
`element.className = "class1" + " class2" + " class3"`;
или даже
element.className = ["class1","class2","class3"].join(" ")
Это переписать все предыдущие классы.
В современных браузерах каждый элемент DOM также имеет коллекцию classList
, к которой вы можете получить доступ. Он имеет методы add
, remove
и toggle
. Это хороший пример того, как фреймворки javascript влияют на стандартные API.
Легко, если вы можете подключить его к ID
document.getElementById("a").className = "newClass anotherClass";
Не будет ли это правильным ответом:
var yourDiv = document.getElementById("divName");
yourDiv.SetAttribute("class","RedClass");
yourDiv.SetAttribute("className","RedClass");
Никогда не видел этого, используя className
, как это (например, yourDiv.className...).
Безопасно использовать element.className += "classname"
, чтобы новый класс присоединялся к списку уже существующих классов.