zoukankan      html  css  js  c++  java
  • 类的操作

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
            .b1{
                 100px;
                height: 100px;
                background-color: red;
            }
            .b2{
                 200px;
                height: 200px;
                background-color: yellow;
            }
        </style>
        <script>
            window.onload=function(){
                var box=document.getElementById("box");
                var btn01=document.getElementById("btn01");
                btn01.onclick=function(){
                    // 修改box的样式
                    /* 
                        通过style属性来修改元素的样式,每修改一个样式,浏览器就需要重新渲染一次页面
                        这样执行的性能是比较差的,而且这种形式当我们要修改多个样式时,也不太方便
                    */
                    /* box.style.width="200px";
                    box.style.height="200px";
                    box.style.backgroundColor="yellow" ;*/
    
                    /* 
                        我希望一行代码,可以同时修改多个样式
                    */
    
                    // 修改box的class属性
                    /* 
                        我们可以通过修改元素的class属性来间接的修改样式
                        这样一来,我们只需要修改一次,即可同时修改多个样式,
                        浏览器只需要重新渲染页面一次,性能比较好,
                        并且这种方式,可以使表现和行为进一步的分离
                    */
                    // box.className +=" b2";//注意加"空格b2"
                    // addClass(box,"b2");
    
                    // alert(hasClass(box,"b1"));
    
                    // 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=/b2/;
                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>
        <br/><br/>
        <div id="box" class="b1 b2"></div>
    </body>
    </html>

     

     

  • 相关阅读:
    window.top.location
    JS 退出系统并跳转到登录界面的实现代码
    CSS position 属性
    在网页中插入时间 自动更新
    CKeditor 配置使用
    使用JspSmart文件上传
    复制的web工程为什么不能部署到tomcat
    JDBC 4 PreparedStatement 与Statement 的区别
    每周会商自动化
    晚上的亲子时光
  • 原文地址:https://www.cnblogs.com/hr-7/p/14238383.html
Copyright © 2011-2022 走看看