如何解决当浏览器本身不实现它时,创建我自己的classList对象
| 我有JavaScript代码,可以使用“ 0”对象添加和删除类。 在我收到有关该代码的投诉之前,该代码已正常运行,并能按预期正常工作,因为它在Opera和IE8中均无法运行。 我不想使用任何框架或代码库。我想最大程度地减少我必须在程序中更改的代码,因此我想创建自己的classList
对象并将其添加到node对象。我已经有了以下代码:
if (typeof(document.createElement(\'input\').classList) == \'undefined\') {
HTMLElement.prototype.classList = new function () {
this.add = function (addClass) {
this.className += addClass;
}
}
}
这显然是行不通的。
问题是:我无法像这样访问此对象的“ 3”。我该怎么做?如何使该对象工作与原始对象相似或完全相同?
解决方法
Mozilla在这里列出了classList垫片:
http://developer.mozilla.org/en/DOM/element.classList
代码中有很多事情要做,但看起来就是您要追求的。
,除了扩展原型之外,您还可以创建一个返回所需值的辅助函数:
classList = function ( elem ) {
return elem.className.replace(/\\s+/g,\' \').split(\' \');
};
然后,您将只调用classList(elem)
,而不是调用elem.classList
,这意味着它不完全像原始版本那样工作,但是它返回的数据相同。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。