1.通过className来添加、删除类名

添加类名
获取元素.className = "类名1 类名2 ..."多个类名用空格隔开
移除类名
获取元素名.className = " "直接等于一个空字符串即可删除类名

2.通过classList来添加、删除类名

添加一个类名
获取元素名.classList.add("类名");
添加多个类名用逗号隔开
获取元素名.classList..add("类名1","类名2","类名3",...); 每个类名需要用引号引起来
移除一个类名
获取元素名.classList.remove("类名");
移除多个类名
获取元素名.classList.remove("类名1","类名2","类名3",...); 每个类名需要用引号引起来

举个栗子

在这里插入图片描述

<style>
        input {
            outline: none;
            height: 35px;
            line-height: 35px;
            border: 1px solid #ccc;
            color: #999;
            text-indent: 1rem;
            display: inline-block;
            transition: all .3s;
        }

        .active {
            border: 1px solid skyblue;
            color: #333;
        }

        .active2 {
            box-shadow: 0 0 3px 2px pink;;
        }
    </style>
<input type="text" value="手机">
    <script>
        window.onload = function () {
            document.querySelector('input').onfocus = function () {
                this.value = ""
                // 方法一:
                // this.style.color = "#333"
                // this.style.border = "1px solid skyblue"

                // 方法二:
                this.classList.add("active", "active2");

                // 方法三:
                // this.className = "active active2"
            }
            // trim() 去除空格
            document.querySelector('input').onblur = function () {
                if (this.value.trim() == "") {
                    this.value = "手机"
                    // 方法一:
                    // this.style.color = "#999"
                    // this.style.border = "1px solid #ccc"

                    // 方法二:
                    this.classList.remove("active", "active2");

                    // 方法三:

                    // this.className = ""
                }
            }
        }
    </script>
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐