Maison > interface Web > js tutoriel > Comment puis-je utiliser « document.getElementsByClassName » dans Internet Explorer ?

Comment puis-je utiliser « document.getElementsByClassName » dans Internet Explorer ?

Barbara Streisand
Libérer: 2024-11-08 16:54:02
original
901 Les gens l'ont consulté

How Can I Use `document.getElementsByClassName` in Internet Explorer?

JavaScript document.getElementsByClassName Compatibilité avec IE

Lorsque vous tentez d'obtenir un tableau d'éléments avec une classe spécifique à l'aide de document.getElementsByClassName, IE rencontre des problèmes de compatibilité. Cette méthode n'est pas directement prise en charge par IE.

Méthode de Jonathan Snook :

L'utilisation de la fonction getElementsByClassName de Jonathan Snook, qui recherche des éléments en fonction d'une correspondance d'expression régulière, peut conduire à erreurs dans IE. En effet, la fonction n'est pas définie comme une méthode de document.

Solution :

Pour rendre la fonction compatible avec IE, elle doit être appelée en tant que fonction distincte sans faire référence au document :

function getElementsByClassName(node, classname) {
    var a = [];
    var re = new RegExp('(^| )'+classname+'( |$)');
    var els = node.getElementsByTagName("*");
    for(var i=0,j=els.length; i<j; i++)
        if(re.test(els[i].className))a.push(els[i]);
    return a;
}

var tabs = getElementsByClassName(document.body,'tab');
Copier après la connexion

Compatibilité IE8 :

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

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

var tabs = document.getElementsByClassName('tab');
Copier après la connexion

Cette approche exploite la méthode querySelectorAll prise en charge dans IE8, qui fonctionne de la même manière que getElementsByClassName.

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