Klasse ansprechen und display style=none setzen
Rocco
- javascript
Ich kriegs nicht hin und bitte um Hilfe!
Ich möchte mittels Javascript sämtliche (Div)-Elemente derselben Klasse unsichtbar machen.
<div class="Eins" style="display:block">Dieser Container soll unsichtbar werden</div>
<div class="Zwei" style="display:block">Dieser Container soll bleiben, wie er ist</div>
<div class="Eins" style="display:block">Dieser Container soll unsichtbar werden</div>
Dann kommt PHP, das dauert eine Weile...
<?php
// mySQL - Abfragen u.s.w.
?>
Und wenn PHP fertig ist, sollen ein paar DIV-Container verschwinden.
<script language="JavaScript">
<!--
Eins.style.display = "none"; // So ähnlich soll es funktionieren!
-->
</script>
Wie kann ich nun Klassen mittels JavaScript ansprechen und so alle Elemente mit Klasse "Eins" auf display=none setzen?
Wenn ich jedem DIV-Container eine individuelle ID zuweise und die Elemente dann mit getElementById anspreche, dann funktioniert es. Will ich aber aus verschiedenen Gründen nicht!
Danke schonmal!
Wie kann ich nun Klassen mittels JavaScript ansprechen und so alle Elemente mit Klasse "Eins" auf display=none setzen?
getElementsByClassName könnte dich interessieren.
@@suit:
nuqneH
getElementsByClassName könnte dich interessieren.
Qapla'
Wo du recht hast, hast du recht :) ich bin einfach schon viel zu XPath und jQuery/CSS-Verwöhnt :p
Wo du recht hast, hast du recht :)
Natürlich nur metaphorisch :p
Wo du recht hast, hast du recht :)
Natürlich nur metaphorisch :p
:)
Weitere Vorschläge, irgendjemand?
Hi!
Weitere Vorschläge, irgendjemand?
getElementsByTagName(), dann die Klasse einzeln prüfen.
Lo!
@@Rocco:
nuqneH
Weitere Vorschläge, irgendjemand?
Was genau hast du an den bisherigen auszusetzen?
Qapla'
@@Rocco:
nuqneH
Weitere Vorschläge, irgendjemand?
Was genau hast du an den bisherigen auszusetzen?
Qapla'
Habe Deinen Link zum anderen Thread völlig übersehen... sorry! ;)
Das muß ich jetzt mal durcharbeiten.
Was genau hast du an den bisherigen auszusetzen?
ggf. sind nur zwei? Aller guten Dinge sind drei:
Ich reiche also jQuery/Sizzle nach:
$('.foo').css('display', 'none');
Hi,
ggf. sind nur zwei? Aller guten Dinge sind drei:
Ich sehe schon: Wenn aller guten Dinge drei sind, dann muß Nr. 4 ja schlecht sein. >;->
Aber natürlich dennoch:
cssRule(".myClass","display","none");
>;->
Gruß, Cybaer
Bin letzlich zu folgender Lösung gekommen - weder elegant noch flexibel, aber für meine Zwecke perfekt, da kurz und knackig:
<style type="text/css">
.firstClass {
display: block;
}
</style>
<div class="firstClass">Dieser Container soll unsichtbar werden</div>
<div class="secondClass">Dieser Container soll bleiben, wie er ist</div>
<?php
// mySQL - Abfragen u.s.w.
?>
<script language="JavaScript">
<!--
document.styleSheets[0].cssRules[0].style.display = "none";
-->
</script>
Merci Allerseits!
firstClass und secondClass sind ziemlich dämliche Klassennamen - ich leide an Déjà-vu :)
Die heißen im echten Code auch anders... wenn's Dich beruhigt ;-)
Die heißen im echten Code auch anders... wenn's Dich beruhigt ;-)
Dann ist ja gut :D ich bin ggf. einfach schon traumatisiert :D
@@Rocco:
nuqneH
Bin letzlich zu folgender Lösung gekommen - weder elegant noch flexibel
Yep, weder noch.
aber für meine Zwecke perfekt, da kurz und knackig:
Auch hier: weder noch.
In meinem Posting hatte ich doch verlinkt, wie’s geht.
Du verpasst mit JavaScript einem Vorfahrenelement ('html' oder 'body' bieten sich an) eine Klasse. Siehe „Javascript mehrstufig zünden“ in [PERFORMANCE-BP2]
Im Stylesheet steht dann
.js .firstClass { display: none }
Fertig! (Von suits berechtigtem Einwand abgesehen.)
<script language="JavaScript">
Je nach DOCTYPE ist @language evtl. falsch. Unsinnig ist es allemal.
Je nach DOCTYPE fehlt @type. Siehe [http://de.selfhtml.org/javascript/intro.htm#javascriptbereiche@title=SELFHTML].
<!--
-->
Die Auskommentierung von JavaScript-Code ist auch unsinnig. Evtl. auch falsch.
Qapla'
Nun, es gibt doch ein paar Dinge, in denen ich gut bin, z.B. im auf-dem-Schlauch-stehen.
Lange hat es gedauert, endlich habe ich Deine Lösung kapiert.
Läuft!
Vielen Dank!