1、getElementsByclassName()方法

<body>
<div class='a1'>klkx1</div>
<ul id='ul1'>
<li class='a1 a2'>1</li>
<li class='a2 a3'>2</li>
<li>3</li>
<li>4</li>
</ul>
<div class='a1'>klkx2</div>
<script>
var a1 = document.getElementsByClassName('a2 a3');//获取所有 class 同时包括 'a2' 和 'a3' 的元素.
var a2 = document.getElementsByClassName('a1');//
var arr = [].filter.call(a2,function(a){
return a.nodeName === 'LI';
});
arr[0].style.background='red';
a1[0].style.background = 'blue';
</script>
</body>

getElementsByClassName('一个参数')  也可以是类中包含多个元素,类名的先后顺序无所谓

2、classList属性

这个属性属性属于:[object DOMTokenList]

操作类名,需通过className属性添加、删除和替换类名,但是clasName是字符串

即使只修改字符串的一部分,也必须每次都设置整个字符串的值

普通的做法:

<body>
<div class='div1 div2 div3'>klkx<div>
<script>
var oDiv = document.getElementsByTagName('div')[0];
var classNames = oDiv.className.split(/\s+/);//以空格为标记划分为数组
var i,
len = classNames.length;
for (i=0;i<len ;i++ )
{
if (classNames[i] === 'div2')
{
break;
}
}
console.log(i);
classNames.splice(i,1);//删除要删除的项
oDiv.className = classNames.join(' ');//然后再以' '拼接为字符串
</script>
</body>

以上代码是必须的,如果想添加类名,可以用拼接字符串进行添加

但是需要检测,添加的类名是否重复

所以H5新增了一些方法

那就是给所有的元素添加了classList属性

该属性是新集合类型:DOMTokenList的实例,是一个对象,也是一个类数组对象,有length属性

所以该对象也有item()方法也可以使用[]方括号写法

该类型还定义如下方法:

add(value):将给定的字符串值添加到列表中,如果已经存在就不添加了

contains(value):表示列表中是否存在给定的值,如果存在就返回true,不存在就返回false

remove(value):从列表中删除给定的字符串,无论存在与否,都返回undefined

toggle(value):如果列表中已经存在给定的值,就删除它,如果没有就添加给定的值

HTML5与相关类的扩充的更多相关文章

  1. List 接口以及实现类和相关类源码分析

    List 接口以及实现类和相关类源码分析 List接口分析 接口描述 用户可以对列表进行随机的读取(get),插入(add),删除(remove),修改(set),也可批量增加(addAll),删除( ...

  2. 【Anroid】9.1 ListView相关类及其适配器

    分类:C#.Android.VS2015: 创建日期:2016-02-18 一.简介 列表视图(ListView)是Android应用程序中使用最频繁的UI组件,从无处不在短菜单选项列表到冗长的联系人 ...

  3. Android随笔之——Android时间、日期相关类和方法

    今天要讲的是Android里关于时间.日期相关类和方法.在Android中,跟时间.日期有关的类主要有Time.Calendar.Date三个类.而与日期格式化输出有关的DateFormat和Simp ...

  4. 21 BasicTaskScheduler基本任务调度器(一)——Live555源码阅读(一)任务调度相关类

    21_BasicTaskScheduler基本任务调度器(一)——Live555源码阅读(一)任务调度相关类 BasicTaskScheduler基本任务调度器 BasicTaskScheduler基 ...

  5. 8 延时队列相关类——Live555源码阅读(一)基本组件类

    这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/oloroso ...

  6. 4 Handler相关类——Live555源码阅读(一)基本组件类

    这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. Handler相关类概述 处理程序相关类一共有三个,其没有派生继承关系,但是其有友元关系和使用关系 ...

  7. MFC编程入门之十三(对话框:属性页对话框及相关类的介绍)

    前面讲了模态对话框和非模态对话框,本节来将一种特殊的对话框--属性页对话框. 属性页对话框的分类 属性页对话框想必大家并不陌生,XP系统中桌面右键点属性,弹出的就是属性页对话框,它通过标签切换各个页面 ...

  8. android 6.0 SDK中删除HttpClient的相关类的解决方法

    一.出现的情况 在eclipse或 android studio开发, 设置android SDK的编译版本为23时,且使用了httpClient相关类的库项目:如android-async-http ...

  9. Android 6.0删除Apache HttpClient相关类的解决方法

    相应的官方文档如下: 上面文档的大致意思是,在Android 6.0(API 23)中,Google已经移除了Apache HttpClient相关的类,推荐使用HttpUrlConnection. ...

随机推荐

  1. echarts中间有字饼图Demo1

    echarts链接:http://gallery.echartsjs.com/editor.html?c=xHy2vIPzLQ 代码: option = { backgroundColor: 'bla ...

  2. 可变数据类型&不可变数据类型

    不同的变量在内存中有不同的存储空间,每个存储空间都有一个ID >>> a = 32 >>> id(a) # 查看ID 1571185856 >>> ...

  3. day 13 模块

    模块 一个py文件,就是一个模块,一个模块是一些相似功能的集合体. # echo.py 定义一个模块. 下文都用这个 print('from echo 模块') name = 'echo' def f ...

  4. centos7下docker1.12.5学习笔记

    一.Docker简介 Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相 ...

  5. Await Async和Thread.waitAll想法?未完待续

    [管理员]四九-李冰-修行者(2216529884) 2017/7/3 17:15:12 看着就可以了,这种东西是有使用场景的.并不是你用了就一定有提升的 [管理员]上海-xx科技(lovepoint ...

  6. Oracle的SQL语句中如何处理‘&’符号

    ‘&’符号在SQL中有特殊含义,所以在SQL中想要写入&,需要特殊处理. 如下SQL语句就不能正确运行: SQL> select 'a&b' from dual; 处理方 ...

  7. PAT 1045 快速排序(25)(STL-set+思路+测试点分析)

    1045 快速排序(25)(25 分) 著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边. 给定划分 ...

  8. Linux CentOS 7 下 Apache Tomcat 7 安装与配置

    前言 记录一下Linux CentOS 7安装Tomcat7的完整步骤. 下载 首先需要下载tomcat7的安装文件,地址如下: http://mirror.bit.edu.cn/apache/tom ...

  9. 如何搭建http服务仓库

    1.拷贝仓库repo-A文件到服务器/media/D: 2.通过createrepo_c 生成仓库rpm信息数据 cd repo-A createrepo . 3.chmod -R 775  repo ...

  10. HapMap

    HapMap五周年回顾 2011-01-12 | 作者: [关闭] 作者简介:曾长青,中国科学院北京基因组所研究员,博士生导师.CUSBEA奖学金.百人计划.杰出青年基金.首批新世纪百千万人才工程国家 ...