综述
Jquerys实现class的add,remove和toggle是十分方便的。而H5新增的classList方法,也让原生js的各种class操作变得方便起来。然而,兼容性来了,classList只兼容IE10及以上(这里只提IE吧,IE是前端过不去的兼容坎),因此十分想方便的用原生js,又纠结在了兼容性上,干脆,那就自己来实现一下吧,都给它扔进去,兼容的就classList,不兼容的就用插件方法,哈,还是比较完美的。
多话不说,直接贡献代码吧。
addClass(el,...classes)
function addClass(el,...classes) {
/*如果不兼容es6,则可以去掉参数的...classes,
*然后让new_class = [].slice.call(arguments, 1),
*当然使用babel更好*/
let new_class = classes,
class_list = el.className,
new_array = [],//最终class
class_list_arr = class_list.split(" ");
//添加
class_list_arr = class_list_arr.concat(new_class);
//去重
/* 用es6的set和Array.from配合会更加简单的完成这一步
* new_array = Array.from(new Set(class_list_arr));
* 本来可以一步搞定
* IE大王不支持Array.from方法,另辟蹊径用传统去重吧,以下是其中一种方法。
*/
for(let i