Подтвердить что ты не робот

Как я могу использовать setAttribute для установки нескольких классов в элементе?

Как установить элемент для нескольких классов?

Исходная попытка:

element.setAttribute("class","class1","class2");
element.className="class1 , class2";
element.class="class1 , class2";
4b9b3361

Ответ 1

Просто установите атрибут как обычно. Он просто устанавливает атрибут для любой строки, которую вы передаете, он не знает каких-либо специальных правил для того, как обрабатывается значение.

Атрибут присваивает пробелу список классов, поэтому:

element.setAttribute("class","class1 class2");

Однако... более старые версии (я думаю, 7 и ниже) Internet Explorer имеют серьезные ошибки в их реализации setAttribute, поэтому не используйте его. Вместо этого используйте свойство className.

element.className = "class1 class2";

Обратите внимание, что это классы HTML. Они используют вне применения стилей. Нет такой вещи, как класс CSS (хотя есть селектора классов, другие селектора, наборы правил и свойства, все из которых (некорректно и смутно) называются "классами" в какой-то момент).

Ответ 2

Атрибут className - это список значений, разделенных пробелами.

Ответ 3

Попробуйте следующее:

document.getElementById("MyElement").className = "class1 class2";

(обратите внимание на пробел вместо запятой между двумя именами)

Или, если вы хотите добавить к уже существующим классам:

    document.getElementById("MyElement").className += " class1 class2";

Ответ 4

Не используйте запятые. Просто установите имя класса с пробелами между несколькими классами. Я бы использовал jQuery addClass method - если вы используете jQuery:).

Ответ 5

если вы хотите добавить (не уничтожить текущие классы), я бы сделал

element.className = element.className + " anotherclass yetanotherclass"

Ответ 6

`element.className = "class1" + " class2" + " class3"`;

или даже

element.className = ["class1","class2","class3"].join(" ")

Это переписать все предыдущие классы.  В современных браузерах каждый элемент DOM также имеет коллекцию classList, к которой вы можете получить доступ. Он имеет методы add, remove и toggle. Это хороший пример того, как фреймворки javascript влияют на стандартные API.

Ответ 8

Не будет ли это правильным ответом:

var yourDiv = document.getElementById("divName");
yourDiv.SetAttribute("class","RedClass"); 
yourDiv.SetAttribute("className","RedClass"); 

Никогда не видел этого, используя className, как это (например, yourDiv.className...).

Ответ 9

Безопасно использовать element.className += "classname", чтобы новый класс присоединялся к списку уже существующих классов.