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: javascript, dhtml


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);