类的操作

  1 <!DOCTYPE html>
  2 <html>
  3 <head>
  4     <meta charset="UTF-8">
  5     <title></title>
  6 </head>
  7 <script type="text/javascript">
  8 window.onload=function(){
  9 var box=document.getElementById("box");
 10 var button1=document.getElementById("button1");
 11 button1.onclick=function(){
 12 /*
 13 修改box的样式
 14 通过style属性来修改元素的样式,每修改一个样式,浏览器就需要重新渲染一次页面
 15 这样的执行的性能是比较差的,而且这种形式当我们要修改多个样式时也不太方便
 16 修改box的class属性
 17 我们可以通过修改元素的class属性来间接的修改样式
 18 这样一来,我们只需要修改一次,即可同时修改多个样式
 19 浏览器只需要重新渲染页面一次,性能比较好,
 20 并且这种方式,可以使表现和行为进一步的分离
 21 */
 22 //box.style.width="2000px";
 23 var b2=document.getElementById("b2");
 24 //b2把b1的样式覆盖掉了
 25 //box.className="b2";
 26 //b2,b3样式同时拥有
 27 //box.className+=" b3";
 28 //addClass(box,b3);
 29 //alert(hasClass(box,"b2"));
 30 //removeClass(box,"b2");
 31 //addClass(box,"b4");
 32 alert(hasClass(box,"b4"));
 33 
 34 if(hasClass(box,"b4"))
 35 removeClass(box,"b4");
 36 else
 37 addClass(box,"b4");
 38 
 39 };
 40 };
 41 
 42 /*定义一个函数,用来向一个元素中添加指定的class属性值
 43 参数
 44 obj 要添加class属性的元素
 45 cn 要添加的class值
 46 */
 47 function addClass(obj,cn)
 48 {
 49 //检查obj中是否含有cn
 50 if(!hasClass(obj,cn))
 51 obj.className+=" "+cn;
 52 }
 53 
 54 /*
 55 判断一个元素中是否含有指定的class属性值
 56 如果有该class,则返回true,没有则返回false
 57 */
 58 function hasClass(obj,cn){
 59 /*
 60 判断obj中有没有cn class
 61 创建一个正则表达式
 62 */
 63 //var reg=/\bb2\b/;这样写写死了,可以通过构造函数的方法
 64 var reg=new RegExp("\\b"+cn+"\\b");
 65 return reg.test(obj.className);
 66 }
 67 
 68 /*
 69 删除一个元素中的指定的class属性
 70 */
 71 function removeClass(obj,cn){
 72 //创建一个正则表达式
 73 var reg=new RegExp("\\b"+cn+"\\b");
 74 //删除class
 75 obj.className=obj.className.replace(reg,"");
 76 }
 77 
 78 /*
 79 toggleClass可以用来切换一个类
 80 如果元素中具有该类,则删除
 81 如果元素中没有该类,则添加
 82 */
 83 function toggleClass(obj,cn)
 84 {
 85 if(hasClass(obj,cn))
 86 removeClass(obj,cn);
 87 else
 88 addClass(obj,cn);
 89 }
 90   </script>
 91 <style type="text/css">
 92 .b1{
 93 width:100px;
 94 height:100px;
 95 background-color:red;
 96 }
 97 .b2{
 98 width:200px;
 99 height:200px;
100 background-color:yellow;
101 }
102 .b3{
103 height:300px;
104 background-color:yellow;
105 }
106 .b4{
107 background-color:green;
108 }
109 </style>
110 <body>
111 <button id="button1">点击按钮以后修改box的样式</button>
112 <br><br>
113 <div id="box" class="b1"></div>
114 </body>
115 </html>

 

posted @ 2019-07-30 17:53  zuiaimiusi  阅读(280)  评论(0编辑  收藏  举报