当浏览器本身没有实现classList对象时,创建我自己的classList对象
Create my own classList object when the browser does not implement it itself
我有使用classList
对象添加和删除类的JavaScript代码。代码正常运行,直到我收到投诉,因为它不能在Opera和IE8中工作。
我不想使用任何框架或代码库。我想减少到一个最大的代码,我必须改变我的程序,所以我想做我自己的classList
对象,并将其添加到节点对象。我已经有了这个代码:
if (typeof(document.createElement('input').classList) == 'undefined') {
HTMLElement.prototype.classList = new function () {
this.add = function (addClass) {
this.className += addClass;
}
}
}
显然不起作用。问题是:我不能像这样访问这个对象的HTMLElement.className
。我怎么才能做到呢?我怎么能使这个对象的工作类似或完全像原来的?
Mozilla在这里列出了一个classList shim:
http://developer.mozilla.org/en/DOM/element.classList代码中有相当多的内容,但看起来是您想要的。
您可以创建一个辅助函数来返回您需要的值,而不是扩展原型:
classList = function ( elem ) {
return elem.className.replace(/'s+/g,' ').split(' ');
};
然后,而不是调用elem.classList
,你只调用classList(elem)
,这意味着它不完全像原来的工作,但它返回相同的数据。
相关文章:
- 引用对象中的通用值
- jQuery匹配JSON对象的部分文本
- 节点导出返回一个空对象
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 全局变量和全局对象的属性之间有什么区别吗
- 比较从函数和生成的日期对象
- Javascript,访问一个主要对象模块模式中的每个对象
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 调整窗口大小时,可拖动的对象会出现在容器外部
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何使用json将对象列表从java转换为javascript
- 序列化数据属性中对象的最可靠方法
- 如何访问声音管理器2创建的声音对象
- FabricJs-限制主对象内添加对象的移动区域
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 值对象在某个变量发生更改后发生更改
- 如何为json对象中的段发送array[]
- 当浏览器本身没有实现classList对象时,创建我自己的classList对象