div sichtbar/unsichtbar machen
Martin k
- javascript
Hallo wer kann mir helfen?
ich habe 2 divs:
<div style="display:none">
UNSICHTBAR
</div>
<div style="display:none">
UNSICHTBAR2
</div>
und will in einer javascript funktion den sichtbarkeits status änder:
document.getElementsByTagName("div")[1].style.display = "inline";
document.getElementsByTagName("div")[2].style.display = "inline";
Bekomme aber immer eine Fehlermeldung:
"document.getElementsByTagName(...)2 ist null oder kein objekt"
kann mir jemand helfen?
danke
Warum machst du es nicht so?
[code="HTML"]
<div style="display:none" id="box1">
UNSICHTBAR
</div>
<div style="display:none" id="box2">
UNSICHTBAR2
</div>
document.getElementById("box1").style.display = "inline";
document.getElementById("box2").style.display = "inline";
[/code]
Gruss, Benni
Hallo,
<div style="display:none" id="box1">
UNSICHTBAR
</div>
<div style="display:none" id="box2">
UNSICHTBAR2
</div>
> ~~~javascript
> document.getElementById("box1").style.display = "inline";
> document.getElementById("box2").style.display = "inline";
>
Würde ich persönlich nicht nutzen. Denn es gibt auch in AJAX- und Web 2.0-Zeiten Benutzer, die Javascript abgeschaltet haben.
Also lieber:
function load {
var divs = document.getElementsByTagName("div");
divs[0].style.display = 'none';
divs[1].style.display = 'none';
}
function show {
var divs = document.getElementsByTagName("div");
divs[0].style.display = 'block';
divs[1].style.display = 'block';
}
<body onload="load">....</body>
... und in den divs dann kein 'style="display:none
"'
Grüße,
Willi
Hallo Martin.
ich habe 2 divs:
<div style="display:none">
UNSICHTBAR
</div><div style="display:none">
UNSICHTBAR2
</div>und will in einer javascript funktion den sichtbarkeits status änder:
document.getElementsByTagName("div")[1].style.display = "inline";
document.getElementsByTagName("div")[2].style.display = "inline";
Bekomme aber immer eine Fehlermeldung:
"document.getElementsByTagName(...)2 ist null oder kein objekt"
^?
Beseitige entweder den Tippfehler in deinem Code oder greife auf die Elemente erst dann zu, wenn sie auch tatsächlich zur Verfügung stehen:
// Platziert in einem script-Element im head-Element oder einer externen JS-Datei
window.onload = function() {
// Dein Code
};
Einen schönen Montag noch.
Gruß, Mathias
Lieber Martin,
ich habe 2 divs:
document.getElementsByTagName("div")[1].style.display = "inline";
document.getElementsByTagName("div")[2].style.display = "inline";Bekomme aber immer eine Fehlermeldung:
"document.getElementsByTagName(...)2 ist null oder kein objekt"
Programmiersprachen fangen immer bei Null zu zählen an!
Deinen Code würde ich auch dahingehend abändern, dass ich getElementsByTagName nur einmal ausführen lasse und das Ergebnis in einer Variablen festhalte. So ist es performanter:
var divs = document.getElementsByTagName("div");
divs[0].style.display = "wasImmerDuWillst";
divs[1].style.display = "wasImmerDuWillst";
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Hi Felix,
Programmiersprachen fangen immer bei Null zu zählen an!
sicher? Fängt Pascal nicht bei 1 an? *grübel*
Ciao, Fanny
Hallo,
Programmiersprachen fangen immer bei Null zu zählen an!
sicher? Fängt Pascal nicht bei 1 an? *grübel*
nicht dass ich wüsste ...
An welches Detail in Pascal dachtest du dabei? Soweit ich mich erinnern kann (hab schon seit Jahren nix mehr in Pascal geschrieben), ist Pascal hier neutral, denn du definierst als Programmierer *selbst* den Wertebereich eines Array-Indexes, etwa in der Art:
var buffer: array [0..1023] of byte;
Es kommt hier also drauf an, mit welcher Vorgeschichte du an die Sache rangehst. Hast du bereits Erfahrung mit anderen Programmiersprachen gesammelt, dann wirst du an der Stelle quasi intuitiv den Arrayindex mit 0 beginnen lassen.
Übrigens werden sogar Strings, die in Pascal nichts anderes als array of char sind, ab 0 beginnend indiziert. Zwar ist das erste Zeichen des Strings in s[1], aber s[0] enthält die tatsächliche Länge des Strings.
So long,
Martin