JavaScript css类名操作

1.className 属性

直接对这个属性赋值可以添加 /修改类名
缺点:新的赋值会覆盖掉前面的值,即使保留之前的值基础上添加也无法保证没有重复

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Test</title>
    <style>
        .center{
            text-align: center;
        }
        .redFont{
            color:red;
        }
    </style>
</head>
<body>
    <div>我是div1</div>
    <div class="redFont">我是div2</div>
    <div class="redFont">我是div3</div>
    <div class="center">我是div4</div>
</body>
</html>
<script>
    var divs = document.querySelectorAll("div")
    // 添加类名
    divs[0].className = "redFont"
    // 移除所有类名
    divs[1].className = ""
    // 在原有基础上添加类名 非重复
    divs[2].className += " center"
    // 在原有基础上添加类名 重复
    divs[3].className += " center"
</script>

运行结果:(无法自动处理那些重复的值,如果要移除某一个类,那更加麻烦,要进行大量的逻辑判断,很不好处理)

以下代码和上面的结果是一样的,列出来仅供参考

<script>
    var divs = document.querySelectorAll("div")
    // 为class属性添加类名
    divs[0].setAttribute("class","redFont")
    // 移除class属性
    divs[1].removeAttribute("class")
    // 在原有基础上添加类名 非重复
    var d2_val = divs[2].getAttribute("class") + " center"
    divs[2].setAttribute("class",d2_val)
    // 在原有基础上添加类名 重复
    var d3_val = divs[3].getAttribute("class") + " center"
    divs[3].setAttribute("class",d3_val)
</script>

2.classList 属性

这个属性返回元素css类名的列表
注意:这个是HTML5里面新增的属性,旧版本浏览器不支持。
这个属性存在的意义就是解决className属性添加/移除新的类名遇到的问题,它把已经存在的类名用数组的形式管理起来,方便移除和添加。所以直接对这个元素赋值是没有意义的。
这个属性是为了方便以数组的形式添加/移除类名,具体的看后面的相关方法

<body>
    <div class="center redFont">我是div</div>
</body>

<script>
    var div = document.querySelector("div")
    console.log(div.classList) // ?["center", "redFont", value: "center redFont"]
    // 直接修改classList属性语法上可以,但是没有实际意义
    div.classList = "test test2"
    console.log(div.classList) // ["test", "test2", value: "test test2"]
</script>

运行结果:

<div class="test test2">我是div</div>

原文地址:https://www.cnblogs.com/OrochiZ-/p/11601106.html

时间: 2024-10-17 22:50:56

JavaScript css类名操作的相关文章

jQuery---jq操作标签文本(html(),text()),jq操作文档标签(插入,删除,修改),克隆,,jq操作属性,jq操作class属性,jq操作表单value,jq操作css,jq操作盒子(重要),jq操作滚动条

jQuery---jq操作标签文本(html(),text()),jq操作文档标签(插入,删除,修改),克隆,,jq操作属性,jq操作class属性,jq操作表单value,jq操作css,jq操作盒子(重要),jq操作滚动条 一丶jQ操作标签内文本 html() 标签元素中的内容 /** 替换的内容可以使一个js对象,jq对象,文本 **/ /* 获取值:获取选中标签元素的所有内容 ,包括标签*/ $('ul').html() " <li>1</li> <li&g

jquery使用css类名和id获取元素

在jQuery中,你可以很容易的使用css 类名和id来获得元素. 例如: 1 ID: #id $('#ida')-选择id 为ida的所有元素,不管元素的标签名如何. $('div#ida')-选择id为ida的所有div标签元素. 2 Class:.classname $('.classA')-选择类名有一个为classA的所有元素,不管其标签名如何. $('div.classA')-选择类名有一个为classa的所有div元素. 完整的例子如下: <html> <head>

Python之路day13 web 前端(JavaScript,DOM操作)

参考链接:http://www.cnblogs.com/wupeiqi/articles/5433893.html day13 1. CSS示例 2. JavaScript 3. DOM操作 上节内容回顾: 1. HTML标签 html/head/body/ input div,span a p br span table > tr行 th表头列 td表头列 h form> action method enctype=;;; select option input系列: text passwo

第一百一十六节,JavaScript,DOM操作样式

JavaScript,DOM操作样式 一.操作样式 CSS作为(X)HTML的辅助,可以增强页面的显示效果.但不是每个浏览器都能支持最新的CSS能力.CSS的能力和DOM级别密切相关,所以我们有必要检测当前浏览器支持CSS能力的级别. DOM1级实现了最基本的文档处理,DOM2和DOM3在这个基础上增加了更多的交互能力,这里我们主要探讨CSS,DOM2增加了CSS编程访问方式和改变CSS样式信息. DOM一致性检测 功能 版本号 说明 Core 1.0.2.0.3.0 基本的DOM,用于表现文档

【转】Javascript+css 实现网页换肤功能

来源:http://www.php100.com/html/webkaifa/DIV_CSS/2008/1014/2326.html Html代码部分: 1.要有一个带id的样式表链接,我们要通过操作这个链接来调用不同的href. <link href="css/main0.css" rel="stylesheet" type="text/css" id="cssfile" /> 2.皮肤选择按钮(后台为每个li添

Day49:CSS属性操作(文本、背景、边框、列表、display、边距)

一.CSS属性操作 1.CSS text 文本颜色:color 颜色属性被用来设置文字的颜色. 颜色是通过CSS最经常的指定: 十六进制值 - 如: #FF0000 一个RGB值 - 如: RGB(255,0,0) 颜色的名称 - 如:  red p { color: rebeccapurple; } 水平对齐方式 text-align 属性规定元素中的文本的水平对齐方式. left       把文本排列到左边.默认值:由浏览器决定. right     把文本排列到右边. center 把文

js css样式操作代码(批量操作)

js css样式操作代码(批量操作) 作者: 字体:[增加 减小] 类型:转载 时间:2009-10-09 用js控制css样式,能让网页达到良好的的用户体验甚至是动画的效果.并且考虑到效率. 我们用js书写css样式通常会用下面的两种方式: 一般情况下我们用js设置元素对象的样式会使用这样的形式: 复制代码 代码如下: var element= document.getElementById(”id”); element.style.width=”20px”; element.style.he

第一百二十六节,JavaScript,XPath操作xml节点

第一百二十六节,JavaScript,XPath操作xml节点 学习要点: 1.IE中的XPath 2.W3C中的XPath 3.XPath跨浏览器兼容 XPath是一种节点查找手段,对比之前使用标准DOM去查找XML中的节点方式,大大降低了查找难度,方便开发者使用.但是,DOM3级以前的标准并没有就XPath做出规范:直到DOM3在首次推荐到标准规范行列.大部分浏览器实现了这个标准,IE则以自己的方式实现了XPath. 一.IE中的XPath 在IE8及之前的浏览器,XPath是采用内置基于A

JavaScript日期时间操作

js日期操作: var myDate = new Date(); myDate.getYear(); //获取当前年份(2位)myDate.getFullYear(); //获取完整的年份(4位,1970-????)myDate.getMonth(); //获取当前月份(0-11,0代表1月)myDate.getDate(); //获取当前日(1-31)myDate.getDay(); //获取当前星期X(0-6,0代表星期天)myDate.getTime(); //获取当前时间(从1970.1