Maison  >  Article  >  interface Web  >  Comment surmonter les problèmes getElementsByClassName() dans les anciens navigateurs Internet Explorer ?

Comment surmonter les problèmes getElementsByClassName() dans les anciens navigateurs Internet Explorer ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-22 07:33:30507parcourir

How to Overcome getElementsByClassName() Issues in Legacy Internet Explorer Browsers?

Problèmes de compatibilité getElementsByClassName() dans les anciens navigateurs Internet Explorer

Question :

Le code ci-dessous génère une erreur dans Internet Explorer 6, 7 et 8 :

var borderTds = document.getElementsByClassName('leftborder');

Problème :

Les anciens navigateurs Internet Explorer comme IE6, IE7 et IE8 ne prennent pas en charge nativement getElementsByClassName() méthode. Cette méthode est utilisée pour sélectionner des éléments en fonction de leur attribut de classe.

Solution :

Pour résoudre ce problème, vous pouvez utiliser la solution de contournement suivante pour émuler getElementsByClassName() fonctionnalité dans ces navigateurs :

document.getElementsByClassName = function(cl) {
  var retnode = [];
  var elem = this.getElementsByTagName('*');
  for (var i = 0; i < elem.length; i++) {
    if((' ' + elem[i].className + ' ').indexOf(' ' + cl + ' ') > -1) retnode.push(elem[i]);
  }
  return retnode;
}; 

Mise en œuvre :

  1. Copiez le script dans votre document HTML.
  2. Une fois le script terminé ajouté, vous pouvez utiliser la méthode getElementsByClassName() comme suit :
var borderTds = document.getElementsByClassName('leftborder');

Avantages :

Cette solution de contournement vous permet de sélectionner des éléments par leur classe dans les anciens navigateurs Internet Explorer sans recourir à des bibliothèques externes comme jQuery.

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