原生js实现添加删除和查询元素的class

首先先来一个兼容性的版本

判断元素是否有某个class

    function hasClass( elements,cName ){
        return !!elements.className.match( new RegExp( "(\\s|^)" + cName + "(\\s|$)") ); // ( \\s|^ ) 判断前面是否有空格 (\\s | $ )判断后面是否有空格 两个感叹号为转换为布尔值 以方便做判断
    };
给元素添加class,首先使用hasClass方法进行了判断

    function addClass( elements,cName ){
        if( !hasClass( elements,cName ) ){
            elements.className += " " + cName;
        };
    };
删除元素的一个class

    function removeClass( elements,cName ){
        if( hasClass( elements,cName ) ){
            elements.className = elements.className.replace( new RegExp( "(\\s|^)" + cName + "(\\s|$)" )," " ); // replace方法是替换
        };
    };


以上的三个方法最好全部作为一个组件引入,省心


我们来说说html5的新添加的classList属性(ie10以下就别想了)


添加方法

add(class1, class2, ...) 在元素中添加一个或多个类名。

使用

document.getElementById("id").classList.add("a", "b", "c");
在dom对象上添加了三个class

如果需要把原来的全部清除,重新添加使用赋值的方法

document.getElementById("id").className = "class";


查询dom元素上是否存在class

contains(class) 返回布尔值,判断指定的类名是否存在。

document.getElementById("id").classList.contains("class");
判断一个class名,存在返回true,不存在返回false

删除class的方法

remove(class1, class2, ...) 移除元素中一个或多个类名。

document.getElementById("id").remove("a","b");
清除元素上的a,b两个元素

如果需要全部清除的话,直接使用赋值的方式

document.getElementById("id").className = "";





  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值