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. H5新增属性contenteditable(不用JS,实现div模拟textarea高度自增长)

    无意中看到一篇博客介绍了contenteditable这个属性——不需用JS,只需在div里加上contenteditable="true",即可实现div模拟textrarea( ...

  2. h5新增属性

    localStorage,sessionStorage,video,audio的使用方法 <!DOCTYPE html> <html lang="en"> ...

  3. h5新增属性本地存储

    ---恢复内容开始--- 存储的两种类型: localStorage 和 sessionStorage localstorage:没有时间限制的数据存储 sessionStorage  针对一个ses ...

  4. 什么是CSS盒模型及利用CSS对HTML元素进行定位的实现(含h5/css3新增属性)

    大家好,很高兴又跟大家见面了!本周更新博主将给大家带来更精彩的HTML5技术分享,通过本周的学习,可实现大部分的网页制作.以下为本次更新内容. 第四章 css盒模型 <!DOCTYPE html ...

  5. H5新增form控件和表单属性

    第一个知识点:表单的属性及总结 第二个知识点:H5新增的表单控件和属性以及总结 第一个知识点: 我们常见的表单验证有哪些呢 text 文本框标签 password 密码框 checkbox 多选框 r ...

  6. H5新增的标签和属性

    声明 Web 世界中存在许多不同的文档.只有了解文档的类型,浏览器才能正确地显示文档. HTML 也有多个不同的版本,只有完全明白页面中使用的确切 HTML 版本,浏览器才能完全正确地显示出 HTML ...

  7. h5新增标签及css3新增属性

    - h5新增的标签 新增元素 说明 video 表示一段视频并提供播放的用户界面 audio 表示音频 canvas 表示位图区域 source 为video和audio提供数据源 track 为vi ...

  8. H5新增API

    H5新增API 选择器 querySelector()和querySelectorAll(),参数都是css选择器,前者返回符合条件的第一个匹配的元素,如果没有则返回Null,后者返回符合筛选条件的所 ...

  9. HTML5 表单新增属性

    1. 表单内元素的form属性 在H5中可以把form放到页面的任何地方,然后为该元素指定一个form属性,属性值为该表单的id,这样就可以声明该元素从属于指定表单了 <form id=&quo ...

随机推荐

  1. windows系统上安装与使用Android NDK r5

    windows系统上安装与使用Android NDK r5  很早就听说了android的NDK应用,只是一直没有时间去研究,今天花了点时间在windows平台搭建了NDK环境,并成功运行了第一个简单 ...

  2. 用Lingo求解线性规划问题

    第一步:输入目标条件和约束条件.每行以分号隔开.然后点击工具栏上的Solve按钮,或Lingo菜单下的Solve子菜单. 第二步:检查report中的结果. 默认情况下,Lingo不进行灵敏度分析. ...

  3. c# 测试方法执行时间

    class Program { static void Main(string[] args) { Console.WriteLine(ActionExtension.Profiler(a, )); ...

  4. python3 判断大小端的一种方法

    这里用到了array.array('H', [1])来测试大小端,[1]可以转化为十六进制的0x0001,占两位,00位高位, 01位低位,通过第一位就可以判断大小端. 如果是小端,则转化为bytes ...

  5. win7安装docker报错:error during connect: Get http ..... the system cannot find the file specified

    因为是win7 所以使用了官方网站的dockertoolbox 安装一路顺利,结果启动就报上面的错误, 因为安装包附带安装了virtualbox 上面的错误后来排查出来是 virtualboox的问题 ...

  6. win7,8走网络打印机出现删除设备和打印机门未关闭的解决方法

    不多说,直接上干货! 用学校的内网连接, 即可. 右键,查看设备网页. 出现下面的情况: 多学学. 欢迎大家,加入我的微信公众号:大数据躺过的坑        人工智能躺过的坑       同时,大家 ...

  7. JS 禁止F12和右键操作控制台

    1.鼠标点击事件 document.onmousedown = function mdClick(event) { var e = event || window.event || arguments ...

  8. 自然语言处理--Word2vec(二)

    前一篇,word2vec(一)主要讲了word2vec一些表层概念,以及主要介绍CBOW方法来求解词向量模型,这里主要讲论文 Distributed Representations of Words ...

  9. ES6 笔记(二)- 总结

        在最近进行的项目中,已经全面使用到ES6,这里对ES6进行整理总结.用得比较多的是带*的内容,这些语法.新增类型.模块调用等从代码量上.可读性上.操作上给项目带来了不少便利.   1.语法 1 ...

  10. How系列-公网如何ssh到内网的Linux系统中?

    起因 最近碰到一件事:B同学在他电脑的Ubuntu虚拟机中学习搭建服务器碰到了问题,要我帮他看下.我总不能一个QQ远程桌面连过去,那样操作会卡到崩溃.ssh过去是最好的方法,不过他的电脑跟我不在一个局 ...