Hallo,
Weiß nicht, wieso du auf <img/> kommst.
Achso klar, es geht ja um ein DIV, nicht im IMG... ist heute wohl nicht mein Tag... lauter Flüchtigkeitsfehler.
Hatte es nicht getestet, sorry. Es müsste so heißen:
document.getElementById("MyImage") && (myImage.style.display = "none");
Erklärst du mal, was für eine unleserliche Abkürzung du dort verwendest?
Du meinst &&
? Das weißt du doch, oder? Es ist der gewöhnliche UND-Operator, hier als Guardoperator benutzt: Wenn der Ausdruck links davon false
wird (also das Objekt nicht definiert ist), dann geschieht auch nichts weiter (=>keine Fehlermeldung), andernfalls wird auch der rechte Ausdruck ausgewertet, wobei der Zuweisungsoperator = den zugewiesenen Wert zurückgibt (der allerdings nicht weiter gebraucht wird).
Bad practice, quick and dirty... ich weiß, wollte den Noob aber nicht noch mit Variablendeklarationen, if-Abfragen und Klammern verwirren, zumal das hier ja eh nur ein Rumdoktern an Symptomen ist.
Wo definierst du myImage?
Flüchtigkeitsfehler, sorry... Wollte es vorher noch definieren, habe mich aber dann für den Einzeiler entschieden und übersehen, dass die Variable dann undefiniert dasteht :(
oder besser so:
if(document.getElementById("MyImage")) myImage.style.display = "none";
Auch das ist nicht viel besser. Den Short-Circuit-Eval der oberen Zeile mal unbeachtet sollte man Codeblöcke immer in Klammern setzen, auch wenn die Syntax das nicht zwingend fordert.
Eval? Bist du sicher? Eine Zuweisung ist doch eine Operation wie jede andere und liefert einen Wert zurück (den zugewiesenen). Meistens steht sowas als einzelne Anweisung da, mit Semikolon abgeschlossen, aber das ist meines Wissens kein muss.
Ich sehe in deinem Code mindestens Klarheitsfehler...
Wie gesagt: Ich wollte hier keinen Klarheitswettbewerb gewinnen, nur schnell die Fehlermeldung wegzaubern und darauf warten, dass es heißt: "funktioniert aber immer nocht nicht mit dem Ausblenden" ;)
Gruß, Don P