如何使 this.getElementsByClassName('class')[0]
在Internet Explorer 6-8中工作?是否有任何polyfill可以修复此问题?
如何使 this.getElementsByClassName('class')[0]
在Internet Explorer 6-8中工作?是否有任何polyfill可以修复此问题?
仅供参考,旧版浏览器仍然存在,因为人们不断努力支持它们。
document.getElementsByClassName的Polyfill
话说,通过简短的谷歌搜索,您可以找到这个链接: https://gist.github.com/eikes/2299607
IE6/7的Polyfill如下:
if (d.evaluate) { // IE6, IE7
pattern = ".//*[contains(concat(' ', @class, ' '), ' " + search + " ')]";
elements = d.evaluate(pattern, d, null, 0, null);
while ((i = elements.iterateNext())) {
results.push(i);
}
}
document.evaluate
方法
https://developer.mozilla.org/en-US/docs/Web/API/document.evaluate
编辑:元素.getElementsByClassName的Polyfilldocument.evaluate
来实现您想要的功能(提示:第二个参数是上下文节点,应该是您的元素),但您需要将调用代码更改为以下内容:<div onclick="myPolyfill('class', this)[0].innerHTML = 'works'">
document.querySelector
。 - Ry-