2010-04-07 2 views

Répondre

3

l'aide du sélecteur [id] ou [class]. Cela sélectionne tous les éléments qui ont cet attribut défini. Ensuite, appelez le attr('id') et récupérez l'identifiant.

(function($) { 
    $.fn.allAttributes = function(attrName) { 
     var selector = "[{attr}]".replace("{attr}", attrName); 
     var attributes = $(selector, this).map(function() { 
      return $(this).attr(attrName).split(' '); 
     }); 
     attributes = $.unique(attributes); 
     return attributes; 
    }; 
})(jQuery); 

Ceci est un plugin jQuery qui fait exactement cela. Exemple d'utilisation:

var ids = $("body").allAttributes("id"); 
var classes = $("body").allAttributes("class"); 

Quelques notes:

La fonction appelle split(' ') parce que l'attribut class peut avoir plusieurs classes CSS séparées par une chaîne telle que "main navi footer". Cela les sépare en éléments distincts. $.unique est appelé sur le tableau à la fin parce que les noms de classe auraient pu être répétés à plusieurs endroits et je suppose que vous ne voulez pas de doublons.

Exemple ici: http://jsfiddle.net/G4Pwc/

Questions connexes