在IE8中,'HTMLElement'是未定义的,另一种选择?

时间:2012-01-15 06:37:31

标签: javascript internet-explorer-8

嘿,我有这样的方法:

// Has Class
HTMLElement.prototype.hasClass = function (searchClass) {
    return this.className.match(new RegExp('(\\s|^)' + searchClass + '(\\s|$)'));
}

在IE9中它运行正常。在IE8中,它给了我未定义的......有一个简单的解决方法吗?

1 个答案:

答案 0 :(得分:2)

如果我没记错的话,你不能在旧版本的IE中向HTMLElement.prototype添加方法。一个简单的解决方法是:

var hasClass = function (el, searchClass) {
    return el.className.test(new RegExp('(\\s|^)' + searchClass + '(\\s|$)'));
};

并使用如下:

alert(    hasClass(   document.getElementById('div1'), 'classToCheck'   )    )

DEMO

您始终可以将此添加到Object.prototype对象,但它在

上不受欢迎