本文介绍如何使用原生JavaScript实现元素class的添加、删除与判断功能。通过正则表达式匹配类名,确保操作安全且不影响其他样式。包含完整的hasClass、addClass和removeClass函数实现及调用示例,适用于需要精细控制DOM样式的场景。
以上即为完整的代码示例,可直接复制使用。
原生JS操作DOM类名完整示例
具体实现代码如下所示:
在页面加载完成后执行初始化逻辑:
获取ID为gaga的DOM元素对象:
调用addClass函数,向该元素添加类名gaga1:
继续调用addClass函数,向该元素添加类名gaxx:
调用removeClass函数,从该元素中移除类名gaga1:
再次调用removeClass函数,从该元素中移除类名gaga:
定义判断元素是否包含指定类名的函数hasClass:
利用正则表达式匹配类名边界,确保精确匹配。表达式(\\s|^)检查类名前是否有空格或位于字符串开头,(\\s|$)检查类名后是否有空格或位于字符串末尾。双感叹号!!将匹配结果转换为布尔值,便于后续条件判断。
};
定义添加类名的函数addClass:
首先通过hasClass检查元素是否已存在该class,若不存在则执行添加操作:
将新类名以空格分隔追加到原有的className字符串后:
};
};
定义移除类名的函数removeClass:
仅当元素确实包含指定class时,才执行移除逻辑:
使用正则表达式定位并替换目标类名为空格,从而实现移除效果。注意此处replace方法会将匹配到的类名及其前导空格替换为单个空格,保持其他类名结构完整。
};
};
};