web前端javascript笔记——(16)类

类的操作


<!DOCTYPE html>

<head>
    <meta charset="UTF-8">
    <title>

    </title>
    <style>
       .b1{
       	width:100px;
       	height:100px;
       	background-color: red;
       }
       .b2{
       	width:200px;
       	height:200px;
       	background-color:yellow;
       }
    </style>
    <script type="text/javascript">
        window.onload = function() {
        	//获取box
        	var box=document.getElementById("box");
          //获取btn01
          var btn01=document.getElementById("btn01");
          //为btn01绑定单击响应函数
          btn01.onclick=function(){
          	//修改box的样式
          	/*通过style属性来修改元素的样式,每修改一个样式,浏览器就需要重新渲染一次页面
          	 这样的执行性能是比较差的,而且这种形式当我们要修改多个样式时,也不太方便
          	 */
      /*    	box.style.width="200px";
          	box.style.height="200px";
          	box.style.backgroundColor="cornflowerblue";
          	*/
          	/*希望一行代码,可以同时修改多个样式*/
          	//修改box的class属性
          	/*我们可以通过修改元素的class属性来间接的修改样式
          	 这样以来,我们只需要修改一次,即可同时修改多个样式
          	 浏览器只需要重新渲染页面一次,性能比较好
          	 并且这种方法,可以使表现和行为进一步的分离*/
          //	box.className="b2";//修改为b2
          //将b1和b2结合起来
     //     box.className+=" b2";    //需要写一个空格
        //    addClass(box,"b2");  //b2需要加""
          // removeClass(box,"b2");
          toggleClass(box,"b2");
          };
            
          //定义一个函数,用来向一个元素中添加指定的class属性值
          /*参数:
           obj  要添加class属性的元素
           cn   要添加的class值*/
          function addClass(obj,cn){
          	//检查obj中是否含有cn
          	if(!hasClass(obj,cn)){
          		obj.className += " "+cn;    //必须要写空格
          	}
          	
          }
          /*判断一个元素中是否含有指定的class属性值
           * 如果有该class,则返回true,否则返回false
           	参数:*/
            function hasClass(obj,cn){
            	//判断obj中有没有cn  class
            	//创建一个正则表达式
         //   	var reg=/\bb2\b/;    //\b为单词边界
              var reg=new RegExp("\\b"+cn+"\\b");
              return reg.test(obj.className);
              
            }
            /*删除一个元素中的指定的class属性*/
           function removeClass(obj,cn){
           	//创建一个正则表达式
           	var reg=new RegExp("\\b"+cn+"\\b");
           	//删除class
           	obj.className=obj.className.replace(reg,"");
           }
           /*toggleClass可以用来切换一个类
                            如果元素中具有该类,则删除
                            如果元素中没有该类,则添加*/
                           function toggleClass(obj,cn){
                           	//判断obj中是否含有cn
                           	if(hasClass(obj,cn)){
                           		//有,删除
                           		removeClass(obj,cn);
                           	}else{
                           		//没有,添加
                           		addClass(obj,cn);
                           	}
                           };
        };
    </script>

</head>

<body>
    <button id="btn01">点击按钮之后修改box的样式</button>
    <div id="box" class="b1"></div>
</body>

</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Komorebi_9999

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值