Okay, ich hab's hingekriegt. Vielen Dank für Eure Hilfe!
Hier ist der vollständige Code, getestet unter Windows XP auf IE 6.0 und Netscape 7.2 (falls jemand mal etwas Ähnliches braucht):
<html><head><title>Test</title>
<script type = "text/javascript">
<!--
var aspoiler;
function initSpoiler() {
aspoiler = new Array();
var node;
var par;
var bnode;
var btext;
var arr = document.getElementsByName('spoiler'); // Array mit sämtlichen Elementen, die den Namen "spoiler" haben
for (var i = 0; i < arr.length; i++) {
node = arr[i];
aspoiler[i] = node.firstChild.nodeValue; // so dass man mithilfe der id auf den entsprechenden Spoilertext zugreifen kann
node.id = i;
node.onclick=showSpoiler;
bnode = document.createElement("b"); // ersetze Text durch <b>Spoiler</b>
btext = document.createTextNode("Spoiler");
node.replaceChild(bnode, node.firstChild);
node.firstChild.appendChild(btext);
}
}
function showSpoiler() {
var el = this;
var text = document.createTextNode(aspoiler[this.id]); // ersetze <b>Spoiler</b> durch den im Array gespeicherten ursprünglichen Text
el.replaceChild(text, el.firstChild);
el.onclick = hideSpoiler;
}
function hideSpoiler() {
this.onclick=showSpoiler;
bnode = document.createElement("b"); // ersetze Spoilertext wieder durch <b>Spoiler</b>
btext = document.createTextNode("Spoiler");
this.replaceChild(bnode, this.firstChild);
this.firstChild.appendChild(btext);
}
//-->
</script>
</head><body onLoad = "initSpoiler()">
<a id = "2" name = "spoiler" onclick="showSpoiler()">Hallo</a></br>
<a id = "3" name = "spoiler">Hallo2</a>
</br>
</body></html>