document.getElementsByClassName 与 Internet Explorer 的兼容性
document.getElementsByClassName 方法提供了一种检索具有特定类的元素的便捷方法。但是,它面临与 Internet Explorer (IE) 的兼容性问题。
Jonathan Snook 的解决方案
解决此问题的一种常见方法是使用 Jonathan Snook 的自定义函数 getElementsByClassName 。此函数利用正则表达式来搜索具有所需类名的元素。
但是,由于调用不正确,IE 仍然可能会遇到此解决方案的错误。该函数应按如下方式调用:
function getElementsByClassName(node, classname) {...} tabs = getElementsByClassName(document.body, 'tab');
而不是:
document.getElementsByClassName(document.body, 'tab');
其他兼容选项
如果支持 IE8 及以上版本就足够了,你可以为 document.getElementsByClassName 实现以下polyfill:
if (!document.getElementsByClassName) { document.getElementsByClassName = function (className) { return this.querySelectorAll('.' + className); }; Element.prototype.getElementsByClassName = document.getElementsByClassName; } tabs = document.getElementsByClassName('tab');
结论
通过调整Jonathan Snook函数的调用或使用提供的polyfill,您可以通过 IE 中的 document.getElementsByClassName 克服兼容性问题。
以上是如何使 document.getElementsByClassName 在 Internet Explorer 中工作?的详细内容。更多信息请关注PHP中文网其他相关文章!