Aller au contenu | Aller au menu | Aller à la recherche

Site membre du réseau Izardev et LCNET

getElementByClassName : Récupérer les éléments d'une page par style

Pour compenser un manque de Javascript, on a tendance détourner un peu l'utilisation des styles CSS à un autre usage : effectuer des traitements sur l'ensemble des éléments d'une page identifiés par l'attribut class.

Voici un modèle de fonction de ce type :

//Définition d'un nouvel espace de nom
var Utils = [];

/**
 * Utils.getElementsByClassName :  renvoi un tableau d'HTMLElement
 * @param className String nom de la classe CSS
 * @param tagName String filtre la recherche par nom de balise
 * @param elementParent String recherche  uniquement les sous noeud de cet élément
 * @return Array
 */
Utils.getElementsByClassName = function(_className, _tagName, _elementParent)
{
    var oReg = new RegExp("(^|s)"+_className+"(s|$)");
    
    var tag;
    (null==_tagName)? tag = "*" : tag = _tagName;
    
    var el;
    (null==_elementParent)? el = document : el = _tagName;

    var elementsToTest = (tag == "*" && el.all)? el.all : el.getElementsByTagName(tag);
    var aRes = new Array();

    for(var i=0; i<elementsToTest.length; i++)
    {
        if(oReg.test(elementsToTest[i].className))
        {
                aRes.push(elementsToTest[i]);
        }
    }

    return aRes;
}

Partagez cet article !

  • Delicious
  • Stumbleupon
  • Digg
  • Facebook
  • Google
  • Linkedin
  • Yahoo Buzz
  • Twitter
Vous avez apprécié cet article ?

Commentaires S'abonner au flux RSS des commentaires

Ajouter un commentaire

Les commentaires sont tous validés par un modérateur, votre commentaire n'apparaît pas directement sur le site.
Aucun support n'est assuré ici, vous pouvez néanmoins laisser vos remarques et critiques sur l'article, les points de vue pertinents sont toujours les bienvenus.