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

Comment utiliser getElementsByClassName() dans Internet Explorer ?

Mary-Kate Olsen
Libérer: 2024-11-05 19:15:02
original
397 Les gens l'ont consulté

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');
Copier après la connexion

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;
}
Copier après la connexion

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');
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal