Maison  >  Article  >  interface Web  >  Comment faire fonctionner document.getElementsByClassName dans Internet Explorer ?

Comment faire fonctionner document.getElementsByClassName dans Internet Explorer ?

DDD
DDDoriginal
2024-11-06 00:45:02830parcourir

How to Make document.getElementsByClassName Work in Internet Explorer?

Compatibilité de document.getElementsByClassName avec Internet Explorer

La méthode document.getElementsByClassName fournit un moyen pratique de récupérer des éléments avec une classe spécifique. Cependant, il est confronté à des problèmes de compatibilité avec Internet Explorer (IE).

Solution de Jonathan Snook

Une approche courante pour résoudre ce problème consiste à utiliser la fonction personnalisée de Jonathan Snook, getElementsByClassName. . Cette fonction utilise une expression régulière pour rechercher des éléments avec le nom de classe souhaité.

Cependant, IE peut toujours rencontrer une erreur avec cette solution en raison d'un appel incorrect. La fonction doit être invoquée comme suit :

function getElementsByClassName(node, classname) {...}

tabs = getElementsByClassName(document.body, 'tab');

Au lieu de :

document.getElementsByClassName(document.body, 'tab');

Autres options compatibles

Si prise en charge d'IE8 et supérieur est suffisant, vous pouvez implémenter le polyfill suivant pour document.getElementsByClassName :

if (!document.getElementsByClassName) {
    document.getElementsByClassName = function (className) {
        return this.querySelectorAll('.' + className);
    };

    Element.prototype.getElementsByClassName = document.getElementsByClassName;
}

tabs = document.getElementsByClassName('tab');

Conclusion

En ajustant l'invocation de la fonction de Jonathan Snook ou en utilisant le polyfill fourni, vous pouvez surmonter les problèmes de compatibilité avec document.getElementsByClassName dans IE.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn