Gunnar Bittersmann: document.getElementsByName

Beitrag lesen

@@blumentopf:

nuqneH

Könnte man beim Ausblenden nicht einfach die bisherige Klassenzugehörigkeit ersetzen, um sie dann beim Einblenden wieder einzuführen?

document.getElementById("bar").className = urspruenglicheKlasse;

Dann müsste man sich die vorrige Klassenzugehörigkeit(en) merken (in einer Eigenschaft des Objekts):

var bar = document.getElementById("bar");  
bar.initialClassName = bar.className;  
bar.className += " compact";

Wegnehmen der Klasse:

bar.className = bar.initialClassName;

Was aber, wenn noch andere Klassen dynamisch hinzugefügt werden?

Besser wäre eine Lösung, die wirklich die betreffende Klasse "compact" wegnimmt:

var oldClasses = bar.className.split(" "), newClass;  
for (var i = 0; i < oldClasses.length; i++) newClass += (oldClasses[i] != "compact" ? " " + oldClasses[i] : "");  
bar.className = newClass;

Frameworks wie jQuery bieten für sowas Methoden: addClass(), removeClass().

Qapla'

--
Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
(Mark Twain)