页面DOM中的每个节点上都有一个classList对象,程序员可以使用里面的方法在节点上增删改查CSS类。使用classList,程序员还可以用它来判断某个节点是否被分配了某个CSS类。添加类(add)document.getElementById("myDIV").classList.add("mystyle");向
元素添加多个类:document.getElementById("myDIV").classList.add("mystyle","anotherClass","thirdClass");移除一个类(remove)使用remove方法,你可以移除单个CSS类:document.getElementById("myDIV").classList.remove("mystyle");删除多个类:document.getElementById("myDIV").classList.remove("mystyle","anotherClass","thirdClass");切换类(toggle)这个方法的作用是当myDiv元素上没有CSS类时,会new添加这个CSS类;如果myDiv元素已经有这个CSS类,它只是将其删除。是反向操作。document.getElementById("myDIV").classList.toggle("newClassName");myDiv.classList.toggle('myCssClass');//现在添加myDiv.classList.toggle('myCssClass');//现在删除是否有类(包含)检查是否包含CSS类:varx=document.getElementById("myDIV").classList.contains("mystyle");结果是真还是假。length属性返回类列表中的类数。检查
元素有多少个类名:varx=document.getElementById("myDIV").classList.length;//3获取
元素的所有类名:我是一个DIV元素
varx=document.getElementById("myDIV").classList;item(index)返回类名在元素中的索引值。索引值从0开始。如果索引值超出范围,返回null获取元素的第一个类名(索引为0):varx=document.getElementById("myDIV").classList.item(0);//mystylebrowse不过IE9及IE9之前的版本不支持该属性。下面的代码可以弥补这个遗憾:(来自一位网友的代码)self=this;functionupdate(fn){returnfunction(value){varclasses=self.className.split(/\s+/g),index=classes.indexOf(value);fn(classes,index,value);self.className=classes.join("");}}return{add:update(function(classes,index,value){if(!~index)classes.push(value);}),remove:update(function(类,指数){如果(~指数)classes.splice(指数,1);}),toggle:update(function(classes,index,value){if(~index)classes.splice(index,1);elseclasses.push(value);}),contains:function(value){返回!!~self.className.split(/\s+/g).indexOf(value);},item:function(i){返回自我。类名.split(/\s+/g)[i]||无效的;}};}});}这里提醒一下,其他类型的值转换为布尔值的对应关系,对应关系表如下:其他类型的值转换为布尔值undefinedfalsenullfalse布尔值不需要转换数字0,NaN为转换为false,其他数值类型转换为trueString只有空字符串''转换为false,其他转换为true对象全部转换为true想了解Object.defineProperty可以参考下面两篇文章:《JS基础篇--JS apply的巧妙用法以及扩展到Object.defineProperty的使用》《JS基础篇--JS中的可枚举属性与不可枚举属性以及扩展》
最新推荐
猜你喜欢
- 1为腾飞奠定基础 可穿戴设备等待黎明
- 2就以安全为基础,小天才手机手表Z2是怎样炼成的
- 3如果你是零基础的音乐演奏者,这些产品更适合你
- 4VR手柄有很多种,但我们还是应该回到基础
- 5可穿戴设备对企业基础设施构成威胁吗?
- 6华帝洗碗机!以用户需求为基础,以独特的创新产品打造新体验
- 7助力中国圣谷培养顶尖人才的K12人工智能基础已被百度教育大脑
- 8云从科技在京首发国家人工智能基础资源公共服务平台
- 9英特尔基础巅峰!它可能是市场上最智能的手表
- 10“傻瓜”智能轮滑鞋!零基础用户也能轻松驾驭
- 117月5日起,亚马逊美国卖家需要为新listing提供25个属
- 12VR+教育已进入深水区,基础教育蓝海市场蓄势待发,
- 13微博控股公司优信布局AR的基础是微软的Hololens平台,
- 14自动驾驶实施物流场景 嬴彻科技助力构建下一代货运基础设施
- 15银光物联网!物联网卡为建设全球智慧医院奠定基础
- 16亚马逊语音专家揭秘 Alexa 耳语模式的 AI 基础
- 17拉卡拉支付在智能POS的基础上,新增场景化收单业务
- 18腾讯马斌!安全能力是腾讯担当“数字助手”的重要基础
- 19Waterdrop完成2.3亿美元D轮融资,用于开发新型保险
- 20小桔汽车服务杨峻:司机是汽车租赁生态系统的基础,感谢3000