Nein, denn da sind die IDs der divs bekannt. Bei mir werden die mal dynamisch generiert. Deswegen muss ich mit ner for-Schleife alle divs verschwinden lassen.
Wenn ich Dein Beispiel anpasse, dann funktioniert es wieder nicht. Ich bekomme noch nicht einmal den
alert, sondern die JavaScript Console von Firefox gibt mir folgendes aus:
Error: divnode.style has no properties
Source File: http://localhost/visi.html
Line: 16
abgeändertes Beispiel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<html>
<head>
<script language="javascript">
function zeigen(bild)
{
var parent = document.getElementById("test");
for(i = 0; i < parent.childNodes.length; i++){
divnode = parent.childNodes[i];
if(divnode){
divnode.style.visibility = 'hidden';
}
else{
alert('mist!');
}
}
// Jetzt gewünschtes Block-Element anzeigen.
document.getElementById(bild).style.visibility = 'visible';
}
</script>
</head>
<body>
<a href="javascript:zeigen('Bild_1');">Bild 1 zeigen</a> |
<a href="javascript:zeigen('Bild_2');">Bild 2 zeigen</a> |
<a href="javascript:zeigen('Bild_3');">Bild 3 zeigen</a>
<br>
<br>Mit einem Klick auf das Bild (hier: den Text) verschwindet es wieder.
<div id="Bild_1" style="position:absolute; top:150px; left:50px; visibility:hidden" onclick="this.style.visibility = 'hidden'">Bild 1<br>in beliebiger<br>Größe und Position</div>
<div id="Bild_2" style="position:absolute; top:250px; left:150px; visibility:hidden" onclick="this.style.visibility = 'hidden'">Bild 2<br>in beliebiger<br>Größe und Position</div>
<div id="Bild_3" style="position:absolute; top:100px; left:350px; visibility:hidden" onclick="this.style.visibility = 'hidden'">Bild 3<br>in beliebiger<br>Größe und Position</div>
</body>
</html>