Hier nochmal das Wichtigste, das in den Antwortposts meiner Vorgänger gesagt wurde, zusammengefasst:
1. document.getElementById(Antwort) - keine Anführungszeichen, du suchst ja schließlich nicht nach dem Element mit der Id "Antwort", sondern willst, dass das Funktionsargument übergeben wird.
2. Da du ohnehin nur document.getElementById() benutzt, kannst du die name-Attribute getrost weglassen.
3. Bei Event-Handler-Attributen ist kein "javascript:" nötig. (Außerdem ist es allgemein besserer Stil, kein "javascript:" zu verwenden.)
4. Das jeweilige Argument, das du den Funktionen innerhalb der onclick-Attribute übergibst, muss in (einfachen) Anführungszeichen stehen (hier verhält es sich genau umgekehrt wie bei 1.).
Somit lautet der korrigierte Code:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Fragestunde</title>
<script type="text/javascript">
function loesung (Antwort) {
if (document.getElementById)
document.getElementById(Antwort).style.visibility = "visible";
}
</script>
</head>
<body>
<form>
<p>Frage1?</p>
<input type="button" id="w1" value="Antwort" onclick="loesung('Antw1')">
<span id="Antw1" style="visibility:hidden">Antwort1</span>
<hr>
<p>Frage2?</p>
<input type="button" id="w2" value="Antwort" onclick="loesung('Antw2')">
<span id="Antw2" style="visibility:hidden">Antwort2</span>
<hr>
</form>
</body>
</html>
LG LSFR77