处理没有框架/库的类的一种方法是使用属性 Element.className,它是“ 获取并设置指定元素的 class 属性的值。”(来自 MDN 文档)。
正如 @ mat ías-fidemraizer在他的回答中已经提到的,一旦您得到了元素的类字符串,您就可以使用与字符串相关联的任何方法来修改它。
这里有一个例子:
假设您有一个 ID 为“ myDiv”的 div,并且希望在用户单击它时向其添加类“ main _ _ section”,
window.onload = init;
function init() {
document.getElementById("myDiv").onclick = addMyClass;
}
function addMyClass() {
var classString = this.className; // returns the string of all the classes for myDiv
var newClass = classString.concat(" main__section"); // Adds the class "main__section" to the string (notice the leading space)
this.className = newClass; // sets className to the new string
}
function hasClass(ele,cls) {
return !!ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}
function addClass(ele,cls) {
if (!hasClass(ele,cls)) ele.className += " "+cls;
}
function removeClass(ele,cls) {
if (hasClass(ele,cls)) {
var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
ele.className=ele.className.replace(reg,' ');
}
}