• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
邹天得
博客园    首页    新随笔    联系   管理    订阅  订阅
原生JS实现addClass,removeClass,toggleClass

jQuery操作class的方式非常强大,但是目前还有一些人不知道如何使用或者由于项目统一性的原因无法使用jquery.

在此写了一个利用原生js来实现对dom元素class的操作方法

1.addClass:为指定的dom元素添加样式

2.removeClass:删除指定dom元素的样式

3.toggleClass:如果存在(不存在),就删除(添加)一个样式

4.hasClass:判断样式是否存在

 

下面为一toggleClass的测试例子

<style type="text/css">

div.testClass{

 

}

</style>

<script type="text/javascript">

function hasClass(obj, cls) {

    return obj.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)'));

}

 

function addClass(obj, cls) {

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

}

 

function removeClass(obj, cls) {

    if (hasClass(obj, cls)) {

        var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');

        obj.className = obj.className.replace(reg, ' ');

    }

}

 

function toggleClass(obj,cls){

if(hasClass(obj,cls)){

removeClass(obj, cls);

}else{

addClass(obj, cls);

}

}

 

function toggleClassTest(){

var obj = document. getElementById('test');

toggleClass(obj,"testClass");

}

</script>

 

<body>

<div id = "test" style = "width:250px;height:100px;">

sssssssssssss

</div>

<input type = "button" value = "toggleClassTest" onclick = "toggleClassTest();" />

</body>

posted on 2017-07-03 10:22  邹天得  阅读(431)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3