Überprüfen ob CSS Klasse existiert
Christian S.
- javascript
0 molily0 Hopsel0 Hopsel
0 Sven Rautenberg
Hi,
kann ich in JavaScript irgendwie überprüfen ob eine CSS Klasse existiert?
ich habe also ein Element, dem ich einen Klassennamen zuweise. Wenn diese Klasse nicht existiert möchte ich standard styles setzen.
geht das etwa so:?
el.className = "Test";
if(el.currentStyle.cssText == "")
{
//eigene styles setzen
}
currentstyle und cssText sind leider nur IE properties. (evtl auch runtimeStyle verwenden).
Gehts auch anders?
Gruß
Christian
Hallo,
ich sehe da zwei Möglichkeiten:
1. Über document.styleSheets alle eingebundenen Stylesheets durchlaufen und schauen, ob in einem Selektor die fragliche Klasse vorkommt.
2. über getComputedStyle bzw. currentStyle auslesen, ob die Klasse ihre Wirkung entfaltet hat. Dazu musst du aber eine Eigenschaft aus der Klasse kennen / fest ins JavaScript programmieren und als Indikator verwenden.
Zu document.styleSheets und getComputedStyle findest du viel im Forumsarchiv.
Vielleicht solltest du dir überlegen, wie du das Problem der fehlenden CSS-Klasse anders handhabst (wieso tritt es überhaupt auf?), denn die obigen Lösungen sind weder elegant noch zuverlässig.
Mathias
Hi Christian!
kann ich in JavaScript irgendwie überprüfen ob eine CSS Klasse existiert?
Du kannst überprüfen, ob ein bestimmtes Attribut gesetzt ist.
ich habe also ein Element, dem ich einen Klassennamen zuweise. Wenn diese Klasse nicht existiert möchte ich standard styles setzen.
Beachte, dass Besucher ohne Javascript nicht vernachlässigt werden.
MfG H☼psel
Hi Hopsel!
kann ich in JavaScript irgendwie überprüfen ob eine CSS Klasse existiert?
Du kannst überprüfen, ob ein bestimmtes Attribut gesetzt ist.
Und hier der richtige Link: http://de.selfhtml.org/javascript/objekte/all.htm#get_attribute
MfG H☼psel
Hi Hopsel!
kann ich in JavaScript irgendwie überprüfen ob eine CSS Klasse existiert?
Du kannst überprüfen, ob ein bestimmtes Attribut gesetzt ist.Und hier der richtige Link: http://de.selfhtml.org/javascript/objekte/all.htm#get_attribute
MfG H☼psel
Das scheint sich nur auf Element Attribute zu beziehen. und der andere Link (style.getAttribute) scheint nur im IE zu funzen.
Gruß
Christian
Hi Christian!
Und hier der richtige Link: http://de.selfhtml.org/javascript/objekte/all.htm#get_attribute
Das scheint sich nur auf Element Attribute zu beziehen.
"class" ist ja auch eine Attribut eines HTML-Elements. Und den Inhalt fragst du mit getAttribut() ab.
MfG H☼psel
Hallo,
die Frage war glaube ich nicht, ob ein Element eine Klasse hat, sondern es steht fest, dass ein Element eine Klasse hat, die Frage ist nur, ob dieser Klasse in einem Stylesheet auch Eigenschaften zugewiesen werden.
Mathias
Moin!
kann ich in JavaScript irgendwie überprüfen ob eine CSS Klasse existiert?
Sowas sollte doch durch entsprechende Herstellung der CSS-Datei sicherzustellen sein.
ich habe also ein Element, dem ich einen Klassennamen zuweise. Wenn diese Klasse nicht existiert möchte ich standard styles setzen.
Dein Problem klingt überdies so, als sollte es eher mit CSS-Mitteln, als mit Javascript gelöst werden.
- Sven Rautenberg