修复方案是在V8Template::newTemplateInstance 里,此时正在DOMTokenList.prototype设置values、add等方法,但这些方法没有设置flags为JS_PROP_CONFIGURABLE
config.extraPlugins = 'markdown'; // add this plugin 进坑 安装完报错: Uncaught DOMException: Failed to execute 'add' on 'DOMTokenList
clasList属性有一个类似数组的可迭代对象,称为DOMTokenList对象。因此,我们可以使用展开操作符将其转换为数组,将clasList转换为一个带有类名的字符串数组。 一旦我们将DOMTokenList转换为一个数组,那么我们就可以使用任何数组方法来操作代码。 总结 带有 || 操作的长条件语句,我们使用对应数组方法来进行优化。
<script> var div = document.querySelector("div"); console.log(div.classList);//DOMTokenList //1.添加类名 是在后面追加类名不会覆盖以前的类名 div.classList.add('three'); console.log(div.classList);//DOMTokenList three"] //2.删除类名 div.classList.remove('one'); console.log(div.classList);//DOMTokenList
attributes仅返回显示属性(简单地说就是直接写在html标签上的属性,或通过setAttribute设置的属性,具体请看《JS魔法堂:不要再被Attribute和Property困扰我们了》) 十、DOMTokenList 但在polyfill前,我们应该先了解清楚classList的类型DOMTokenList的特征。 1. 只读 2. 实时同步相应元素的className属性值的变化 3. String} cls css类 var check = function(methodName, cls){ var msgTpl = ["Failed to execute '", , "' on 'DOMTokenList
getElementsByClassName("blue red"); (2)、classList属性 比起使用字符串属性className操作类名,classList要方便很多,classList是一个DOMTokenList 序号 类型 意义 1 DOMTokenList.length 只读属性,一个整数,表示存储在该对象里值的个数 2 DOMTokenList.item() 根据传入的索引值返回一个值 3 DOMTokenList.contains () 如果 DOMTokenList 列表中包括相应的字符串,则返回 true,否则返回 false 4 DOMTokenList.add() 添加一个标记(token)到 DOMTokenList 列表中 5 DOMTokenList.remove() 从 DOMTokenList 列表中移除一个标记(token) 6 DOMTokenList.toggle() 从 DOMTokenList 字符串中移除标记字串 如果传入的符号字串(token)不存在,则将其添加进去,并返回 true 表1-4 DOMTokenList类型对象的成员 <body>
这个 classList 属性是新集合类型 DOMTokenList 的实例。 与其他 DOM 集合类似,DOMTokenList 有一个表示自己包含多少元素的 length 属性,而要取得每个元素可以使用 item() 方法,也可以使用方括号语法。
</script> </body> </html> 执行效果 : 四、类列表样式操作 1、Element.classList 简介 Element.classList 是 元素的类属性的实时 DOMTokenList 集合 , 这个 DOMTokenList 集合提供了一系列的方法来进行类名的增删改查操作 , 从而让你能够更方便地管理元素的类 ; element.classList 提供的 主要方法 : add(String
使用 classList 属性访问 class 属性的格式如下:element.classList // classList 是一个只读属性,其返回的值为 DOMTokenList,其中包含了元素的所有
DOMTokenList接口现在支持replace(),可以轻松地将所有相同的令牌更改为新的令牌,例如在过期时将active改为inactive 为了能访问元素的atttribute名称列表,现在支持getAttributeNames
操作 className addClass 给元素增加 class,使用 classList 属性,该属性返回的是 DOMTokenList 对象,对象有一个 add 方法可添加 class,如果没有这个属性那么使用
方法返回文档中所有指定类名的元素集合 语法:document.getElementsByClassName(classname) 3.classList classList 属性返回元素的类名,作为 DOMTokenList
Element.prototype.classList: 只读,返回该元素包含的class属性,是一个DOMTokenList。
classList方式 var div = document.getElementsByClassName("bd")[0]; div.classList.remove("user"); classList属性是DOMTokenList
参考资料 How_browsers_work DOMTokenList 图解 SSL/TLS 协议 DNS 域名系统
classlist属性实现了DOMTokenList,有一大堆有用的方法。
元素的元数据属性: classList 获取元素设置的class列表,返回DOMTokenList对象,可直接add,remove等操作 className 获取元素设置的class列表,返回字符串 disabled
classList 是一个新的集合类型 DOMTokenList 的实例,DOMTokenList有length属性表示自己包含多少项,可以通过 item()或中括号取得个别的元素。
这个 classList 属性是新集合类型 DOMTokenList 的实例。 与其他 DOM 集合似,DOMTokenList 有一个表示自己包含多少元素的 length 属性,而要取得每个元素可以使用 item()方法,也可以使用方括号语法。