Maison >interface Web >js tutoriel >Comment utiliser getElementsByClassName() dans Internet Explorer ?

Comment utiliser getElementsByClassName() dans Internet Explorer ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-05 19:15:02435parcourir

How to Use getElementsByClassName() in Internet Explorer?

Compatibilité de document.getElementsByClassName dans IE

Internet Explorer présente un défi lorsque vous tentez de récupérer un tableau d'éléments avec une classe spécifique à l'aide de document .getElementsByClassName(). Pour surmonter cette limitation, une solution personnalisée est nécessaire.

Méthode de Jonathan Snook

Une approche pour émuler document.getElementsByClassName() dans IE consiste à utiliser la fonction de Jonathan Snook, qui parcourt tous les éléments d'un nœud à l'aide de getElementsByTagName(*) et les filtre en fonction de la présence de la classe souhaitée.

Incompatibilité IE

Malgré la mise en œuvre de la solution de Snook, un Une erreur peut toujours se produire dans IE indiquant : "L'objet ne prend pas en charge cette propriété ou cette méthode." En effet, getElementsByClassName() n'est pas une méthode directe de l'objet document dans IE.

Implémentation corrigée

L'implémentation correcte de la fonction de Snook nécessite de spécifier explicitement le nœud cible. :

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

Support IE8

Pour IE8 et les versions ultérieures, une approche simplifiée peut être utilisée :

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

Cet extrait de code définit getElementsByClassName() comme méthode de l'objet document et le rend également disponible pour les éléments individuels via Element.prototype.getElementsByClassName().

Utilisation

Une fois implémenté, le La méthode getElementsByClassName() peut être utilisée comme suit :

var tabs = document.getElementsByClassName('tab');

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