首頁  >  文章  >  web前端  >  如何讓 document.getElementsByClassName 在 Internet Explorer 中運作?

如何讓 document.getElementsByClassName 在 Internet Explorer 中運作?

DDD
DDD原創
2024-11-06 00:45:02831瀏覽

How to Make document.getElementsByClassName Work in Internet Explorer?

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,您提供的polyfill,您提供的polyfill,您提供的polyfill,您提供的polyfill,您提供的polyfill,您提供的polyfill,您提供的polyfill,您提供的polyfill,您提供的polyfill,您提供的polyfill,您提供的polyfill,您提供的polyfill可以透過IE 中的document.getElementsByClassName 克服相容性問題。

以上是如何讓 document.getElementsByClassName 在 Internet Explorer 中運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn