Javascript 理解classie.js API有困难

Javascript 理解classie.js API有困难,javascript,classiejs,Javascript,Classiejs,大家好,我正在浏览另一个站点上的幻灯片和推送菜单示例,我正在努力理解classie.js文件中的if语句,该文件包含在源代码下载中 if ( 'classList' in document.documentElement ) { hasClass = function( elem, c ) { return elem.classList.contains( c ); }; addClass = function( elem, c ) { elem.classList.

大家好,我正在浏览另一个站点上的幻灯片和推送菜单示例,我正在努力理解classie.js文件中的if语句,该文件包含在源代码下载中

if ( 'classList' in document.documentElement ) {
  hasClass = function( elem, c ) {
    return elem.classList.contains( c );
  };
  addClass = function( elem, c ) {
    elem.classList.add( c );
  };
  removeClass = function( elem, c ) {
    elem.classList.remove( c );
  };
}
else {
  hasClass = function( elem, c ) {
    return classReg( c ).test( elem.className );
  };
  addClass = function( elem, c ) {
    if ( !hasClass( elem, c ) ) {
      elem.className = elem.className + ' ' + c;
    }
  };
  removeClass = function( elem, c ) {
    elem.className = elem.className.replace( classReg( c ), ' ' );
  };
}

我似乎无法理解第一个IF语句。我的理解是
document.documentElement
返回
标记,但是
'classList'
业务是什么?我能在上面找到的唯一东西是on,但我根本不明白IF语句在测试什么。任何帮助都将不胜感激。谢谢

较新的浏览器支持DOM元素节点上的
.classList
属性。这是一个类名数组。较旧的浏览器只支持
.className
属性,该属性是一个包含空格分隔的类名的字符串


如果您发布的代码中的
If
语句看到文档节点具有
.classList
属性,则它知道它正在较新的浏览器上运行。如果没有,则会创建一些类管理实用程序的替代版本。

document.documentElement
中的“类列表”只需检查
document.documentElement
元素中是否存在
类列表

如果指定的属性在指定的对象中,则
中的
运算符返回true


@是的,现在就修!