Att använda textNodes istället för innerHTML är dock inte en jättestor ändring, motsvarande kod bör se ut så här:
var dikter=[ {stycken:dikt1Stycke, rader:dikt1Rad, obj:document.getElementById('d1')}, ... ]; for(var i = 0; i < dikter.length; ++i){ var dikt = dikter[i]; var visaP = document.createElement('p'); visaP.appendChild(document.createTextNode("Denna dikt har " + dist.stycken + " stycken och " + dikt.rader + " rader.")); //CHANGED visaP.style.visibility = "hidden"; var anchor = document.createElement("a"); anchor.href = '#'; var showText = "Visa diktinformation", hideText = "Dölj diktinformation"; anchor.appendChild(document.createTextNode(showText)); //CHANGED anchor.onclick = function() { var isHidden = (visaP.style.visibility == "hidden"); visaP.style.visibility = (isHidden ? "visible" : "hidden"); visaP.firstChild.nodeValue = (isHidden ? showText : hideText); //CHANGED return false; } dikt.obj.appendChild(anchor); dikt.obj.appendChild(visaP); }
Tack, jag ska begrunda detta i morgon men jag ser att du använt inner.html vilket jag helst vill undvika eftersom jag vill lära mig det hela från grunden. Ni verkar inte ha någon möjlighet att skicka bilagor heller. Den kod jag har som funkar är jättelång.
Ha en trevlig midsommaraftonskväll.
Postat av Simon (213.89.66.60) den 25 Juni, 2010 kl 18:38:17.
Som svar på: Re: Editerbar text postat av nilla den 25 Juni, 2010 kl 18:29:12.