Damit können Sie zwar nicht feststellen, welche Klassennamen doppelt vorkommen, aber Sie können die doppelten Namen ausblenden.
$('.duplicated_class_name').slice(1).hide()
[Bearbeiten] echte Lösung und Kommentar unten hinzugefügt:
(function($){
var
classes = {},
dupes = {};
$('div')
.each(function(index, elem){
$.each(
elem.className.split(/\s+/),
function(index, name) {
if (name) {
classes[name] = (classes[name] || 0) + 1;
if (classes[name] > 1) {
dupes[name] = classes[name];
}
}
}
);
});
$.each(
dupes,
function(name) {
$('.' + name)
.slice(1)
.hide();
}
);
})(jQuery);
Hinweis: Ich bezweifle ernsthaft, dass Sie dies tatsächlich tun wollen, da es wahrscheinlich unbeabsichtigte Folgen für Ihre Benutzeroberfläche haben wird. Das heißt, Sie werden mit ziemlicher Sicherheit Inhalte ausblenden, die Sie eigentlich weiterhin anzeigen möchten.
Sie wollen mit Sicherheit filtern, welche Klassen ausgeblendet werden sollen, entweder durch eine vordefinierte Whitelist oder zumindest durch eine Abgleichsfunktion (wie einen regulären Ausdruck). Viel Glück!