不多说,直接上代码,本人亲测
[JavaScript] 纯文本查看 复制代码 /**
* 判断某个dom元素是否有某个类
* @author cygnet
* @date 2017-03-21T22:23:08+0800
* @param {[type]} obj [description]
* @param {[type]} cls [description]
* @return {Boolean} [description] 包含则返回true
*/
hasClass: function(obj, cls){
// 获取当前元素的所有类名
var _cls = obj.className || obj.class;
// 通过空格把字符串分割成数组 ps: 正则表达式 \s 匹配空格
var _cls_arr = _cls.split(/\s+/);
// 循环遍历数组
for(var i = 0; i<_cls_arr.length; i++){
// 如果包含,则返回true
if(_cls_arr[i] == cls) return true;
}
return false;
},
/**
* 元素上移除某个类名
* @author cygnet
* @date 2017-03-21T22:29:05+0800
* @param {[object]} obj [dom元素]
* @param {[string]} cls [类名]
* @return {[type]} [description]
*/
removeClass: function(obj, cls){
if(this.hasClass(obj, cls)){
obj.className = obj.className.replace( new RegExp( "(\\s|^)" + cls + "(\\s|$)" )," " );
}
},
/**
* 给dom元素增加类
* @author cygnet
* @date 2017-03-21T22:21:03+0800
* @param {[object]} obj [dom元素]
* @param {[string]} cls [类名]
*/
addClass: function(obj, cls){
// 获取当前元素的类名
var _cls = obj.className || obj.class;
// 当前元素如果类,则空格复制给变量
var _space = (_cls != '') ? ' ' : '';
// 拼接类名
var _addcls = _cls + _space + cls;
// 替换原来的class
obj.className = _addcls;
}
|