IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> js类的操作 -> 正文阅读

[JavaScript知识库]js类的操作

其中3个函数:

addClass(box, "b2");向box中添加b2类属性

removeClass(box, "b2");向box中移出box属性

toggleClass(box, "b2");替换box中的属性有的话删除,没有进行添加进来综合前两个函数

详细代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .b1 {
            width: 100px;
            height: 100px;
            background-color: red;
        }

        .b2 {

            height: 300px;
            background-color: yellow;
        }
    </style>
    <script>
        window.onload = function () {
            //获取box、btn01
            var box = document.getElementById("box");
            var btn01 = document.getElementById("btn01");
            //为btn01绑定单击响应函数
            btn01.onclick = function () {
                /*
                  通过style属性来修改元素样式,每修改一个样式,浏览器就需要重新渲染一次页面
                  这样执行的性能是非常差的,而且这种形式在修改多个样式时也是不太方便
                */
                //修改box样式
                /* box.style.width = "200px";
                box.style.height = "200px";
                box.style.backgroundColor = "yellow"; */

                /*
                我希望一行代码,可以同时修改多个样式,我们通过修改元素的class属性来间接修改样式
                这样一来我们只需要修改一次,即可以同时修改多个样式,此时浏览器只需要重新渲染一次,性能较好,
                并且这种方式,可以使表现和行为进一步分离
                */
                //修改box的class属性,把b1换成b2
                //box.className = "b2";
                //如果我们不希望去掉b1而是希望在b1原有值得基础上加b2,把b2加到b1上
                //box.className += " b2";

                //addClass(box, "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值,有返回true,没有返回false
        /*
          参数:
            obj 要查询class属性的元素
            cn 要查询的class值
        
        */
        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) {
            //判断是否含有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"></div>
</body>

</html>

结果:

点击按钮:

?

?

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-02-04 10:57:06  更:2022-02-04 10:57:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:36:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码