为了账号安全,请及时绑定邮箱和手机立即绑定

js问题,有不懂意思的语句,求大神指点

js问题,有不懂意思的语句,求大神指点

红颜莎娜 2019-04-10 13:15:03
var hasClass, addClass, removeClass;if ('classList' in document.documentElement) {hasClass = function (el, className) { return el.classList.contains(className); };addClass = function (el, className) { el.classList.add(className); };removeClass = function (el, className) { el.classList.remove(className); };} else {hasClass = function (el, className) {return new RegExp('\b'+ className+'\b').test(el.className);};addClass = function (el, className) {if (!hasClass(el, className)) { el.className += ' ' + className; }};removeClass = function (el, className) {el.className = el.className.replace(new RegExp('\b'+ className+'\b', 'g'), '');};}if ('classList' in document.documentElement) 这句是什么意思,起什么作用
查看完整描述

6 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

classList属性功能很强大 可以给DOM元素的类名做增删改查操作 但是IE9和IE9以前的版本不支持classList属性 document.documentElemen是文档对象根节点(html)的引用。if ('classList' in document.documentElement) 这句话就是判断浏览器是否支持classList这个属性 如果支持直接进行增删改查操作,如果不支持用正则表达式对类名做一个处理让它兼容


查看完整回答
反对 回复 2019-05-13
?
浮云间

TA贡献1829条经验 获得超4个赞

没用过in,估计是判断document.documentElement是否包含'classList'节点


查看完整回答
反对 回复 2019-05-13
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

我的想法跟楼上一样。本质上很多语言的语法都差不多的。


查看完整回答
反对 回复 2019-05-13
?
呼唤远方

TA贡献1856条经验 获得超11个赞

'classList' in document.documentElement 就是判断现在浏览器支不支持classList这个属性。
主流浏览器里面 IE应该是10.0之后,谷歌是8.0,火狐是3.6
不过你这段代码里面应该就是为了是所有浏览器都兼容,才添加的判断,如果支持classList这个属性就用classList里面的方法,不支持的话就自己写方法来进行判断

查看完整回答
反对 回复 2019-05-13
  • 6 回答
  • 0 关注
  • 781 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信