[英]How does the Error object seems to create properties on itself by his own on Javascript?
[英]Create my own classList object when the browser does not implement it itself
我有使用classList
对象添加和删除类的JavaScript代码。 在我收到有关该代码的投诉之前,该代码已正常运行,并能按预期正常工作,因为它在Opera和IE8中均无法运行。
我不想使用任何框架或代码库。 我想最大程度地减少程序中必须更改的代码,因此我想创建自己的classList
对象并将其添加到node对象。 我已经有了以下代码:
if (typeof(document.createElement('input').classList) == 'undefined') {
HTMLElement.prototype.classList = new function () {
this.add = function (addClass) {
this.className += addClass;
}
}
}
这显然是行不通的。 问题是:我无法像这样访问此对象的HTMLElement.className
。 我该怎么做? 如何使该对象工作与原始对象相似或完全相同?
Mozilla在这里列出了classList垫片:
http://developer.mozilla.org/en/DOM/element.classList
代码中有很多事情要做,但是看起来就像是您追求的那样。
除了扩展原型之外,您还可以创建一个返回所需值的辅助函数:
classList = function ( elem ) {
return elem.className.replace(/\s+/g,' ').split(' ');
};
然后,您只需要调用classList(elem)
,而不是调用elem.classList
,这意味着它不能完全像原始的那样工作,但是会返回相同的数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.