Hallo und erstmal danke für die Antwort!
var arr = document.getElementsByName('spoiler'); // Array mit sämtlichen Elementen, die den Namen "spoiler" haben
Dürfen die betroffenen Elemente überhaupt ein name-Attribut haben?
Es ist ein <a>-Tag, also ja. Da komme ich auch problemlos dran; die Ersetzung funktioniert ja. Ebenso wie die Zuweisung einer Integer-Variablen als id (JavaScript ist ja nicht streng getyped); das habe ich extra noch mal ausprobiert. Die ID ist auch eindeutig, wenn ich nicht einen ganz bösen Programmierfehler übersehen habe.
Daran dürfte es also nicht liegen.
Ich habe alles mit IE und Netscape getestet. Folgender Code funktioniert:
<script type = "text/javascript">
<!--
var count = 0;
function myclick(id) {
//alert('click ' + id);
var node = document.getElementById(id);
var i = 3;
if (count == 0) {
node.setAttribute("id", i);
alert(node.getAttribute("id"));
node.removeChild(node.firstChild); // entferne Spoilertext
var bnode = document.createElement("b"); // und ersetze ihn durch <b>Spoiler</b>
var btext = document.createTextNode("Spoiler");
node.appendChild(bnode);
node.firstChild.appendChild(btext);
count++;
}
else {
node.firstChild.nodeValue='Hallo';
count = 0;
}
}
function myclick2() {
var node = document.getElementById('3');
alert(node.id);
}
//-->
</script>
</head><body>
<a id = "2" name = "spoiler" onClick="myclick('2')">Hallo</a>
</br>
<a onClick="myclick2()">Ashura</a>
Es ist wirklich nur das Ersetzen des onclick - bzw. dessen zweite Ausführung - die nicht funktioniert...