HTML5与相关类的扩充
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与相关类的扩充的更多相关文章
- List 接口以及实现类和相关类源码分析
List 接口以及实现类和相关类源码分析 List接口分析 接口描述 用户可以对列表进行随机的读取(get),插入(add),删除(remove),修改(set),也可批量增加(addAll),删除( ...
- 【Anroid】9.1 ListView相关类及其适配器
分类:C#.Android.VS2015: 创建日期:2016-02-18 一.简介 列表视图(ListView)是Android应用程序中使用最频繁的UI组件,从无处不在短菜单选项列表到冗长的联系人 ...
- Android随笔之——Android时间、日期相关类和方法
今天要讲的是Android里关于时间.日期相关类和方法.在Android中,跟时间.日期有关的类主要有Time.Calendar.Date三个类.而与日期格式化输出有关的DateFormat和Simp ...
- 21 BasicTaskScheduler基本任务调度器(一)——Live555源码阅读(一)任务调度相关类
21_BasicTaskScheduler基本任务调度器(一)——Live555源码阅读(一)任务调度相关类 BasicTaskScheduler基本任务调度器 BasicTaskScheduler基 ...
- 8 延时队列相关类——Live555源码阅读(一)基本组件类
这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/oloroso ...
- 4 Handler相关类——Live555源码阅读(一)基本组件类
这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. Handler相关类概述 处理程序相关类一共有三个,其没有派生继承关系,但是其有友元关系和使用关系 ...
- MFC编程入门之十三(对话框:属性页对话框及相关类的介绍)
前面讲了模态对话框和非模态对话框,本节来将一种特殊的对话框--属性页对话框. 属性页对话框的分类 属性页对话框想必大家并不陌生,XP系统中桌面右键点属性,弹出的就是属性页对话框,它通过标签切换各个页面 ...
- android 6.0 SDK中删除HttpClient的相关类的解决方法
一.出现的情况 在eclipse或 android studio开发, 设置android SDK的编译版本为23时,且使用了httpClient相关类的库项目:如android-async-http ...
- Android 6.0删除Apache HttpClient相关类的解决方法
相应的官方文档如下: 上面文档的大致意思是,在Android 6.0(API 23)中,Google已经移除了Apache HttpClient相关的类,推荐使用HttpUrlConnection. ...
随机推荐
- xcode - pod install 出现错误
xcode 10 上pod install 出现错误 error: /Users/apple/Desktop/VenusClient/Pods/Pods/Target Support Files/Po ...
- Bootstrap(6)图标菜单按钮组件
一.小图标组件 Bootstrap 提供了免费的 263 个小图标(数了两次),具体可以参考中文官网的组件链接:http://v3.bootcss.com/components/#glyphicons ...
- vue解决遮罩层滚动方法
vue 遮罩层阻止默认滚动事件 在写移动端页面的时候,弹出遮罩层后,我们仍然可以滚动页面. vue中提供 @touchmove.prevent 方法可以完美解决这个问题 <div class=& ...
- Faiss教程:索引(2)
索引的I/O与复制 所有的函数都是深复制,我们不需要关心对象关系. I/O函数: write_index(index, "large.index"): 写索引到文件 Index * ...
- eclipse导入项目以后,内容没有错误,项目上却有个小红叉?
对于上面的错误,应该如何解决?
- vue(ajax:axios中文文档)
axios 基于http客户端的promise,面向浏览器和nodejs 特色 浏览器端发起XMLHttpRequests请求 node端发起http请求 支持Promise API 监听请求和返回 ...
- linux操作系统-设置静态ip
在使用linux虚拟机的时候因为经常有关机的需求,然后重新开机后可能面临这上一次获取的ip被改变,在这里我分享一下在linux 下设置静态ip的经验 1.查看路由状态 [root@localhost ...
- linux操作系统-源码包安装jdk1.7
1.下载安装文件 在oracle官方找不到bin二进制安装文件只能使用rpm包来安装 下载地址:http://www.oracle.com/technetwork/java/javase/downlo ...
- 22.Mysql磁盘I/O
22.磁盘I/O问题磁盘IO是数据库性能瓶颈,一般优化是通过减少或延缓磁盘读写来减轻磁盘IO的压力及其对性能的影响.增强磁盘读写性能和吞吐量也是重要的优化手段. 22.1 使用磁盘阵列 RAID(Re ...
- Liunx 重定向,管道符(转)
原作网址:http://blog.csdn.net/qq_16811963/article/details/52997178 输出重定向 >代表以覆盖的方式将命令的正确输出输出到指定的文件或设备 ...