JavaScript用html5新方法操作元素类名

现在网页中类属性使用越来越多,经常会通过增加类、移除类给指定的元素修改样式效果。

早先JavaScript处理起来特别不方便,需要先取到class属性,然后对字符串进行处理。

现在html5给所有元素增加了classList属性来操作类属性,非常方便。

classList

先看如下代码:

1<ul class="nav"> 2 <li class="active">栏目1</li> 3 <li>栏目2</li> 4 <li>栏目3</li> 5</ul> 6 7<script type="text/javascript"> 8 // 获取到当前的li元素 9 let activeLi = document.querySelector(".active"); 10 // 打印classList属性 11 console.log(activeLi.classList) 12 // 控制台输出: 13 // DOMTokenList ['active', value: 'active'] 14</script>

控制台查看效果:

1

classList属性是 DOMTokenList 类型,可以通过add、contains、remove等方法对类属性进行操作。

1add(value) 新增加一个类名。 2contains(value) 是否包含类名。 3remove(value) 删除类名。 4toggle(value) 如果类名存在则删除,否则添加。

实务应用

实务中,栏目是切换是很常用的一个应用。接上面的例子,当点击栏目时 将 active 移动到对应的栏目。

1<ul class="nav"> 2 <li class="item active">栏目1</li> 3 <li class="item">栏目2</li> 4 <li class="item">栏目3</li> 5</ul> 6 7<script type="text/javascript"> 8 let currentElement = document.querySelector(".nav").firstElementChild; 9 // 遍历li元素设置点击事件 10 while (currentElement) { 11 currentElement.onclick = function() { 12 // 移除激活li的active 13 document.querySelector(".active").classList.remove("active"); 14 // 当前li类增加active 15 this.classList.add("active"); 16 } 17 currentElement = currentElement.nextElementSibling; 18 } 19</script>

这样实现起来就很方便了,不用影响到其他类名。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

一篇文章带你了解JavaScript日期

日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用

Java日期时间API系列31

  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前

java8新特性

Stream将List转换为Map,使用Collectors.toMap方法进行转换背景:User类,类中分别有id,name,age三个属性。List集合,userList,存储User对象1、指定keyvalue,value是对象中的某个属性值。 Map<Integer,StringuserMap1userList.str