Maison > interface Web > js tutoriel > Comment sélectionner des éléments HTML par nom de classe en JavaScript ?

Comment sélectionner des éléments HTML par nom de classe en JavaScript ?

Patricia Arquette
Libérer: 2024-11-07 14:01:03
original
571 Les gens l'ont consulté

How to Select HTML Elements by Class Name in JavaScript?

Comment getElementByClass avec JavaScript ?

Question :

Vous souhaitez basculer la visibilité d'éléments DIV en fonction de leur classe à l'aide d'un extrait JavaScript. Cependant, le script actuel s'appuie sur getElementById, ce qui ne convient pas car les noms DIV sont générés dynamiquement à l'aide de XSLT.

Réponse :

Méthode getElementsByClassName :

Les navigateurs modernes prennent en charge nativement la méthode getElementsByClassName. Vous pouvez vérifier sa disponibilité et l'utiliser s'il est pris en charge.

Méthode Dustin Diaz (pour les navigateurs plus anciens) :

Pour les navigateurs plus anciens, utilisez la méthode Dustin Diaz :

<code class="javascript">function getElementsByClassName(node, classname) {
  if (node.getElementsByClassName) { // Native implementation exists
    return node.getElementsByClassName(classname);
  } else {
    return (function getElementsByClass(searchClass, node) {
        if ( node == null )
          node = document;
        var classElements = [],
            els = node.getElementsByTagName("*"),
            elsLen = els.length,
            pattern = new RegExp("(^|\s)"+searchClass+"(\s|$)"), i, j;

        for (i = 0, j = 0; i < elsLen; i++) {
          if ( pattern.test(els[i].className) ) {
              classElements[j] = els[i];
              j++;
          }
        }
        return classElements;
    })(classname, node);
  }
}
Copier après la connexion

Script de bascule mis à jour :

Utilisez la méthode getElementsByClassName ou la solution de secours de Dustin Diaz dans votre script de bascule :

<code class="javascript">function toggle_visibility(className) {
   var elements = getElementsByClassName(document, className),
       n = elements.length;
   for (var i = 0; i < n; i++) {
     var e = elements[i];

     if(e.style.display == 'block') {
       e.style.display = 'none';
     } else {
       e.style.display = 'block';
     }
  }
}
Copier après la connexion

Utilisation :

Dans votre HTML, modifiez les attributs onclick de vos liens toggle pour référencer la nouvelle fonction toggle_visibility :

<code class="html"><a href="#" onclick="toggle_visibility('class1');">Click here to toggle visibility of class 1 objects</a>
<a href="#" onclick="toggle_visibility('class2');">Click here to toggle visibility of class 2 objects</a></code>
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!

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