Hallo, ich habe ein kleines Problem: Ich versuche ein Script zu schreiben, das es ermöglicht, mit <a name = "spoiler"> gekennzeichnete Bereiche zu löschen und durch das Wort "Spoiler" zu ersetzen. (In der hier gezeigten Testversion erfolgt die Ersetzung durch Klicken auf den Spoilertext.) Wenn man dann darauf klickt, soll der ursprüngliche Text wieder erscheinen.
Die Ersetzung klappt, aber wenn ich auf den ersetzten Text klicke, passiert nichts. Weiß jemand, woran das liegt und wie man es ändern kann?
Quelltext (enthält auskommentiert frühere Versuche, das Problem zu lösen):
function initspoiler() {
aspoiler = new Array();
var node;
//var par;
//var att;
//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];
/*par = arr[i].parentNode;
aspoiler[i] = arr[i].firstChild.nodeValue; // so dass man mithilfe der id auf den entsprechenden Spoilertext zugreifen kann
arr[i].removeChild(arr[i].firstChild); // entferne Spoilertext
par.removeChild(arr[i]);*/
node.setAttribute("id", i);
node.setAttribute("onclick", "showSpoiler('" + i + "')");
node.firstChild.nodeValue = 'Spoiler';
/* bnode = document.createElement("b"); // ersetze Text durch <b>Spoiler</b>
node = document.createElement("a");
att = document.createAttribute("id");
att.nodeValue = i;
node.setAttributeNode(att); // setze id jedes Elements auf seinen Platz im Array,
att = document.createAttribute("onClick");
att.nodeValue = "myclick('"+i+"')";
node.setAttributeNode(att);
btext = document.createTextNode("Spoiler");
node.appendChild(btext);
bnode.appendChild(node);
par.appendChild(bnode);*/
}
}
function showSpoiler(id) {
alert('showSpoiler('+i+')');
var el = document.getElementById(id);
el.firstChild.removeChild(); // entferne <b>Spoiler</b>
el.removeChild();
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+"')");
}
Ich wäre für jegliche Hilfe dankbar!
MfG,
Anne