js判断样式className增加或删除class的代码一例

发布时间:2020-08-08编辑:脚本学堂
如何用正则表达式判断多个class之间是否存在真正的class(前后空格的处理),然后增加class删除class呢?本文给出的代码,正是实现此功能的一个不错的例子,供大家学习参考。

代码如下:

<script language="javascript">
/**
 * 判断样式className
 * http://www.jb200.com
*/
function MyClass () {}
MyClass.hasClassName = function(element, className)
{
if (!element) return;
var elementClassName = element.className;
if (elementClassName.length == 0) return false;
//用正则表达式判断多个class之间是否存在真正的class(前后空格的处理)
if (elementClassName == className || elementClassName.match(new RegExp("(^|s)" + className + "(s|$)")))
return true;
return false;
};
MyClass.addClassName = function(element, className)
{
if (!element) return;
var elementClassName = element.className;
if (elementClassName.length == 0)
{
element.className = elementClassName;
return;
}
if (elementClassName == className || elementClassName.match(new RegExp("(^|s)" + className + "(s|$)")))
return;
element.className = elementClassName + " " + className;
};
MyClass.removeClassName = function(element, className)
{
if (!element) return;
var elementClassName = element.className;
if (elementClassName.length == 0) return;
if(elementClassName == className)
{
element.className = "";
return;
}
if (elementClassName.match(new RegExp("(^|s)" + className + "(s|$)")))
element.className = elementClassName.replace((new RegExp("(^|s)" + className + "(s|$)"))," ");
}; 
</script>