function addClass(obj, cls){
var obj_class = obj.className,//猎取 class 内容.
blank = (obj_class != '') ? ' ' : '';//推断猎取到的 class 是不是为空, 假如不为空在前面加个'空格'.
added = obj_class + blank + cls;//组合本来的 class 和须要增加的 class.
obj.className = added;//替代本来的 class.
}
function removeClass(obj, cls){
var obj_class = ' '+obj.className+' ';//猎取 class 内容, 并在首尾各加一个空格. ex) 'abc bcd' -> ' abc bcd '
obj_class = obj_class.replace(/(\s+)/gi, ' '),//将过剩的空字符替代成一个空格. ex) ' abc bcd ' -> ' abc bcd '
removed = obj_class.replace(' '+cls+' ', ' ');//在本来的 class 替代掉首尾加了空格的 class. ex) ' abc bcd ' -> 'bcd '
removed = removed.replace(/(^\s+)|(\s+$)/g, '');//去掉首尾空格. ex) 'bcd ' -> 'bcd'
obj.className = removed;//替代本来的 class.
}
function hasClass(obj, cls){
var obj_class = obj.className,//猎取 class 内容.
obj_class_lst = obj_class.split(/\s+/);//经由过程split空字符将cls转换成数组.
x = 0;
for(x in obj_class_lst) {
if(obj_class_lst[x] == cls) {//轮回数组, 推断是不是包括cls
return true;
}
}
return false;
}
原生JS完成hasClass,addClass,removeClass
原文作者:damonare
原文地址: https://segmentfault.com/a/1190000004899802
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: https://segmentfault.com/a/1190000004899802
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。