3 return obj.className.match(
new RegExp('(\\s|^)' + cName + '(\\s|$)'
));
4 }
5 6 gQuery.prototype.addClass =
function (cName) {
7 for (
var i = 0; i <
this.elements.length; i++
) {
8 if (!
this.hasClass(
this.elements[i], cName)) {
9 // hello abc // abc10 this.elements[i].className += " " +
cName;
11 this.elements[i].className =
this.trim(
this.elements[i].className);
12 }
13 }
14 return this;
15 }
16 17 gQuery.prototype.removeClass =
function (cName) {
18 for (
var i = 0; i <
this.elements.length; i++
) {
19 if (
this.hasClass(
this.elements[i], cName)) {
20 var re =
new RegExp('(\\s|^)' + cName + '(\\s|$)'
);
21 this.elements[i].className =
this.elements[i].className.replace(re, " "
);
22 this.elements[i].className =
this.trim(
this.elements[i].className);
23 }
24 }
25 return this;
26 }
27 28 gQuery.prototype.toggleClass =
function (cName) {
29 for (
var i = 0; i <
this.elements.length; i++
) {
30 if (
this.hasClass(
this.elements[i], cName)) {
31 this.removeClass(cName);
32 }
else {
33 this.addClass(cName);
34 }
35 }
36 return this;
37 }
这里,我还写了一个独立的删除某个class的功能:
1 this is a test string
2
3
思路非常的简单,获取div元素中的所有class, 用split 按空格切割,就会得到[box1,box2,box3]这样的数组, 然后遍历判断,是否有box2这个class?
找到之后就把当前数组的索引记下来,最后再用splice把该class从数组删除得到[box1,box3] 然后把数组的每一项用join函数中的空格连接,再赋值
给元素的className.
而在html5中,每个元素都有classList这个属性, classList是一个类数组结构, 提供了4个操作class的方法: add,remove,toggle,contains,
看到这几个英文单词,你已经知道什么意思了吧,尤其对于使用过jquery的朋友
add( 添加class), remove( 删除class), toggle( 切换class) contains( 判断是否包含某个class )
1 this is a test string
2
3
4
5