Get all the css classes in use on your page

By using javascript that can be done pretty easily. The script below requires prototype

var classes = [];
function collectClasses(ele){
  var children = ele.childElements();
  if(children.length > 0){
    children.each(function(el){collectClasses(el);});
  }
  else{
   ele.classNames()
     .each(function(className){classes.push(className)});
   return classes;
  }
}
var body = document.getElementsByTagName(‘body’)[0];
collectClasses(body);
var myUniqueClasses = classes.uniq();

 

The myUniqueClasses variable holds all the classnames that are in use on your page.

 

 

del.icio.us tags: ,

  1. There’s a bug in your code to do with childElements I think.

    Also: a variation on a theme:

    function collectClasses(elm){
    var styles = [];
    for(var s=0, stylesheet; stylesheet = document.styleSheets[s]; s++){
    for(var r=0, rule; rule = stylesheet.cssRules[r]; r++){
    styles.push(rule.cssText);
    }
    }
    return styles;
    }

    var body = document.getElementsByTagName(‘body’)[0];
    collectClasses(body);

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>