H5新增属性classList

h5中新增了一个classList,原生js可以通过它来判断获取dom节点有无某个class。

classList是html元素对象的成员,它的使用非常简单,比如

console.log(document.body.classList); 

目前已知classList API有length,item,add,remove,toggle,contains

length

静态属性。可以获取元素类名的个数,使用方式:

var len = document.body.classList.length;

item( Number )

方法。可以获取元素的类名,接受一个参数,即数字索引。使用方式:

//如果index超出范围,则返回null
var cls = document.body.classList.item(index);

add( String [, String] )

方法。可以给元素添加类名,就像jquery中的addClass()。使用方式:

document.body.classList.add('myclass');
//遗憾的是,它一次性只能增加一个类,比如以下方式将会报错
//document.body.classList.add('class1 class2'); 

remove( String [,String] )

方法。可以将元素的类名删除,就像jquery中的removeClass()。和add()方法一样,一次只能删除一个类名。使用方式:

 document.body.classList.remove('myclass'); 

toggle( String [, force] )

方法。可以给元素交替增加类名和删除类名,就像jquery中的toggleClass()。

当只有一个参数时:切换 class value,即如果类存在,则删除它并返回false,如果不存在,则添加它并返回true。

当存在第二个参数时:如果第二个参数的计算结果为true,则添加指定的类值,如果计算结果为false,则删除它。

使用方式:

document.body.classList.toggle('myclass');  

contains( String )

方法。可以检测判断元素是否包含某个类名,返回false或true。使用方式:

document.body.classList.contains('myclass'); //返回true或者false 

示例

 // div是具有class =“foo bar”的<div>元素的对象引用
div.classList.remove("foo");
div.classList.add("anotherclass"); // 如果visible被设置则删除它,否则添加它
div.classList.toggle("visible"); // 添加/删除 visible,取决于测试条件,i小于10
div.classList.toggle("visible", i < 10); alert(div.classList.contains("foo")); //添加或删除多个类
div.classList.add("foo","bar");
div.classList.remove("foo", "bar");  

H5在移动端的兼容性相对来说已经很不错,在不用jquery的时候,使用H5的新属性,可以省下不少功夫的

另外判断dom节点有无某个class的方法可以通过getAttribute()这个方法。即

 <html>
<head>
</head>
<body>
<div>
<p>1</p>
<p class="test">2</p>
<p>3</p>
</div>
<script>
var p = document.getElementsByTagName('p');
for(var i = 0;i <p.length;i++){
//方法一
if(p[i].className=='test'){
console.log(p[i].innerHTML)
}
//方法二,用getAttribute()这个方法
//if(p[i].getAttribute("class")=='test'){
//console.log(p[i].innerHTML);
//}
}
</script>
</body>
</html>

  

h5的classList对象的更多相关文章

  1. 移动端通过ajax上传图片(文件)并在前台展示——通过H5的FormData对象

    前些时候遇到移动端需要上传图片和视频的问题,之前一直通过ajax异步的提交数据,所以在寻找通过ajax上传文件的方法.发现了H5里新增了一个FormData对象,通过这个对象可以直接绑定html中的f ...

  2. H5的FormData对象完成ajax上传文件multiFile

    最近工作中需要完成,ajax上传图片,可是input file +ajax是无法完成的: 于是寻找了许久,发现了H5 的一个对象FormData 使用方法如下: HTML: <form id=& ...

  3. h5笔记02

    Markdown 用普通文本描述富文本的语法 扩展名md,markdown 链接:http://wowubuntu.com/markdown/ 代表h标签 没有符号的代表段落 -符号代表无序列表 1. ...

  4. 使用HTML5里的classList操作CSS类

    在HTML5 API里,页面DOM里的每个节点上都有一个classList对象,程序员可以使用里面的方法新增.删除.修改节点上的CSS类.使用classList,程序员还可以用它来判断某个节点是否被赋 ...

  5. 用PHP+H5+Boostrap做简单的音乐播放器(进阶版)

    前言:之前做了一个音乐播放器(纯前端),意外的受欢迎,然后有人建议我把后台一起做了,正好也想学习后台,所以学了两天php(不要吐槽我的速度,慢工出细活嘛~)然后在之前的基础上也又完善了一些功能,所以这 ...

  6. 项目分享五:H5图片压缩与上传

    一.简介 图片的压缩与上传,是APP里一个很常用的功能.我们来年看 ChiTuStore 是怎样做的.相关文件 App/Module/User/UserInfo.html,App/Module/Use ...

  7. javascript高级程序设计---Element对象

    Element对象对应网页的HTML标签元素.每一个HTML标签元素,在DOM树上都会转化成一个Element节点对象(以下简称元素节点).元素节点的nodeType属性都是1,但是不同HTML标签生 ...

  8. HTML5 classList API接口

    原文地址:HTML5 classList API 原文日期: 2010年07月13日 翻译日期: 2013年08月23日 当我陷入JavaScrip和JavaScript类库框架之中时,我总是有种希望 ...

  9. HTML DOM classList 属性

    页面DOM里的每个节点上都有一个classList对象,程序员可以使用里面的方法新增.删除.修改节点上的CSS类.使用classList,程序员还可以用它来判断某个节点是否被赋予了某个CSS类. 添加 ...

随机推荐

  1. 架构师养成记--35.redis集群搭建

    前记:redis哨兵经验之谈.哨兵做主从切换可能要花费一两秒,这一两秒可能会丢失很多数据.解决方法之一是在java代码中做控制,try catch 到 链接断开的异常就sleep 一两秒钟再conti ...

  2. FlowPortal-BPM——数据库交互:创建新接口(类库)—将数据提交给其他程序使用

    使用到的是“流程设计”→“自定义插件” 一.创建新类库 (1)新建类库→引用文件 (2)新建ado.net数据访问类(要操作的数据库) (3)右键类库名称→属性→生成→输出→路径:安装目录下UserD ...

  3. C#-WebForm-★★★JQuery知识——DOM操作★★★

    例如: $("#btn1").attr( "disabled" , "disabled" ); 例如: $("#d1") ...

  4. TortoiseGit-2.0.0.0-64bit问题

    使用TortoiseGit拉取一个项目时,提示: disconnected no supported authentication methods available(server sent: pub ...

  5. FPGA实战操作(2) -- PCIe总线(协议简述)

    目录 1. PCIe基础知识 2. 事务层协议 2.1 数据包结构 2.2 帧头含义详述 3. 报文举例 3.1 寄存器读报文 3.2 完成报文 4. 机制简述 4.1 Non-Posted和Post ...

  6. python全栈开发_day17_时间,系统模板和序列化

    一:时间模板 1)time 常用功能: time.sleep() time.time() time.strftime() import time print(time.strftime("% ...

  7. Access network

    1       State transfering A•Mobility:开机-搜寻PLMN/CELL来发现自己在网络中的位置•Attach request•Auth request•Auth res ...

  8. Mac 10.12安装图片切换工具ArcSoft Photo+

    说明:Mac自带的图片切换不能连续切换,这款工具和美图看看差不多. 下载: (链接: https://pan.baidu.com/s/1i5rLYzr 密码: 49dp)

  9. (Android+IOS)正在做一个新闻App,做的差不多了,听听大家的建议 (图)

    (Android+IOS)正在做一个新闻App,做的差不多了,听听大家的建议! 新闻采集器做好了,前端展示APP界面感觉还不是很好,还需要改进改进,希望发布(Android和IOS版本)前听听大家的建 ...

  10. (转)架构师之DNS实战CentOS7VSCentOS6

    原文:https://www.abcdocker.com/abcdocker/1298 CentOS7上使用bind9搭建DNS主从服务器-----http://blog.51cto.com/yich ...