<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>addclass,removeclass,hasclass,toggleclass,getbyclass</title>
</head>
<body>
<div class="div1" id="box1"></div>
<input type="button" value="按钮" id="btn1"/>
<script>
function addClass(obj,cls) {//obj:要添加classname的元素,cls:要添加的classname;
//如果原来没有class:
if(obj.className == ''){
obj.className = cls;
} else {
//本来已经有class,新增class的情况:
var arrclassname = obj.className.split(' ');//
var index = arrIndexOf(arrclassname,cls);
if(index == -1) {
//如果要添加的class在原来的元素上不存在:
obj.className += ' ' + cls;
}
}
} function arrIndexOf(arr,v){//检测数组中是否有相同的值存在,并且返回它的位置;
for(var i=0;i<arr.length;i++){
if(arr[i] == v){
return i;
}
}
return -1;
} function removeClass(obj,cls){
//如果有class的话:
if(obj.className != ''){
var arrClassName = obj.className.split(' ');//对原有class进行拆分,看看是否包含需要移除的class,也就是传参cls的classname;
var index = arrIndexOf(arrClassName,cls);
//r如果有需要移除的class
if(index != -1){
arrClassName.splice(index,1);
obj.className = arrClassName.join('');
}
}
} function hasClass(obj,cls){
var cls = cls || '';
if( cls.replace(/\s/g,'').length == 0){
return false;//当cls没有参数时,返回false;
}else{
return new RegExp(' ' + cls + '').test(' ' + obj.className);
}
} function toggleClass(obj,cls){
hasClass(obj,cls) ? removeClass(obj,cls) : addClass(obj,cls);
} function getByClass(oParent, sClass) {
if (oParent.getElementsByClassName) {
return oParent.getElementsByClassName(sClass);
} else { //IE 8 7 6
var arr = [];
var reg = new RegExp('\\b' + sClass + '\\b');
var aEle = oParent.getElementsByTagName('*');
for (var i = 0; i < aEle.length; i++) {
if (reg.test(aEle[i].className)) {
arr.push(aEle[i]);
}
}
return arr;
}
} var oBtn1 = document.getElementById('btn1');
var oBox1 = document.getElementById('box1');
oBtn1.onclick = function () {
if( hasClass(oBox1,'div1') ){
alert('hasclass');
}; alert( getByClass(document,'div1').length );
} </script> </body>
</html>

最新文章

  1. MySQL 磁盘I/O问题
  2. 关于CefSharp的坎坷之路
  3. java web学习总结(十五) -------------------JSP基础语法
  4. UITableView的使用
  5. java提高篇(十五)-----关键字final
  6. oracle中Window和Window Group
  7. HDU 4825:Xor Sum(Trie)
  8. Oracle归档方式设置
  9. DTCMS自定义标签,获取所有栏目以及获得二级子栏目导航
  10. linux (centos 6.4)安装自定义分区方案(转载)
  11. 关于ajax发送的数据问题
  12. WPF命中测试示例(一)——坐标点命中测试
  13. angularJS 系列(五)--controller AS 语法
  14. Microsoft Visual 的变态
  15. Java面试05|MySQL及InnoDB引擎
  16. kotlin, 一种新的android平台一级开发语言
  17. Ubuntu Server 17.04安装GNOME指令
  18. BZOJ_1251_序列终结者
  19. blfs(systemd版本)学习笔记-安装、配置和使用wpa_supplicant无线网络连接工具
  20. hiho一下 第145周

热门文章

  1. Codeforces Round #339 Div.2 A - Link/Cut Tree
  2. Echarts通过Ajax实现动态数据加载
  3. pip安装模块警告InsecurePlatformWarning: A true SSLContext object is not available.
  4. java .net compartion
  5. Linux-NFS原理介绍
  6. Oracle 10g bigfile表空间、smallfile 表空间
  7. Oracle 12c RAC 搭建手册
  8. linux包之包管理命令rpm-yum
  9. 【转】WinForm不同版本覆盖安装
  10. Redis学习手册(List数据类型)