搜索
javascript - js怎么实现jq的addclass,removeclass,例如本来是 class="aa",要变成class="aa bb"
怪我咯
怪我咯 2017-07-05 10:44:24
[JavaScript讨论组]

js怎么实现jq的addclass,removeclass,例如本来是 class="aa",要变成class="aa bb",注意不用jquery

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(5)
曾经蜡笔没有小新

js有个classlist的接口
MDN链接

不过你要考虑下兼容性。

女神的闺蜜爱上我

replace

習慣沉默

if (!this.hasClass(obj, class)) obj.className += " " + class;

ringa_lee

elem.className
或者
elem.classList
感觉classList比较好,elem.classList.add('bb')就可以了
另外,jQuery源码是通过className实现的addClass和removeClass
最后加一句,这种偏基础的问题要学会自己百度google

学习ing
function addClass(ele,name){
        if(ele && name){
            var cn = ele.className;
            if(!cn){
                ele.className = name;
            }else if(cn.indexOf(name) === -1){
                ele.className = cn.replace(/\s*$/,' '+name);
            }
        }
}
function removeClass(ele,name){
        var reg1 = new RegExp('^\\s*\\b'+ name +'\\b\\s*$');
        var reg2 = new RegExp('^\\s*' + name+'\\b');
        var reg3 = new RegExp('\\b'+ name + '\\s*$');
        var reg4 = new RegExp('\\s*\\b'+name+'\\b\\s*');
        if(ele && name){
            var cn = ele.className;
            if(cn && cn.indexOf(name) > -1){
                if(reg1.test(cn)){
                    ele.className = '';
                }else if(reg2.test(cn)){
                    ele.className = cn.replace(reg2,'');
                }else if(reg3.test(cn)){
                    ele.className = cn.replace(reg3,'');
                }else{
                    ele.className = cn.replace(reg4,' ');
                }
            }
        }
};
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号