Hi,
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?
for (var i = 0; i < arr.length; i++) {
[...]
node.setAttribute("id", i);
i ist eine Zahl. Eine Zahl kann kein gültiger Wert für eine id sein.
Außerdem: verwende node.id = ..., sonst zickt der IE.
node.setAttribute("onclick", "showSpoiler('" + i + "')");
Das wird im IE nicht funktionieren, weise node.onclick eine passende Funktion zu.
att = document.createAttribute("id");
att.nodeValue = i;
Eine Zahl kann immer noch kein gültiger Wert für eine id sein.
Abgesehen davon: dieselbe ungültige Id hast Du schon für ein anderes Element verwendet, siehe oben. Id-Werte müssen dokumentweit eindeutig sein.
node.setAttributeNode(att); // setze id jedes Elements auf seinen Platz im Array,
Auch hier: node.id = ...
att = document.createAttribute("onClick");
s.o.
att.nodeValue = "myclick('"+i+"')";
node.setAttributeNode(att);
s.o.
function showSpoiler(id) {
alert('showSpoiler('+i+')');
i? oder doch id?
var el = document.getElementById(id);
Da Deine ungültigen ids nicht eindeutig sind, ist ein Erfolg dieses Aufrufs fraglich.
var text = document.createTextNode(spoiler[id]); // und ersetze es durch den im Array gespeicherten ursprünglichen Text
el.appendChild(text);
node.setAttribute("onclick", "hideSpoiler('"+id+"')");
s.o.
cu,
Andreas
Warum nennt sich Andreas hier MudGuard?
Schreinerei Waechter
O o ostern ...
Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.