1 // 解决IE9及其以下 不支持classList属性的问题
2 if (!("classList" in document.documentElement)) {
3 Object.defineProperty(HTMLElement.prototype, 'classList', {
4 get: function() {
5 var self = this;
6 function update(fn) {
7 return function(value) {
8 var classes = self.className.split(/\s+/g),
9 index = classes.indexOf(value);
10
11 fn(classes, index, value);
12 self.className = classes.join(" ");
13 }
14 }
15
16 return {
17 add: update(function(classes, index, value) {
18 if (!~index) classes.push(value);
19 }),
20
21 remove: update(function(classes, index) {
22 if (~index) classes.splice(index, 1);
23 }),
24
25 toggle: update(function(classes, index, value) {
26 if (~index)
27 classes.splice(index, 1);
28 else
29 classes.push(value);
30 }),
31
32 contains: function(value) {
33 return !!~self.className.split(/\s+/g).indexOf(value);
34 },
35
36 item: function(i) {
37 return self.className.split(/\s+/g)[i] || null;
38 }
39 };
40 }
41 });
42 }
作者:彼岸舞
时间:2020\08\05
内容关于:工作中用到的小技术
本文来源于网络,只做技术分享,一概不负任何责任