anchorText1 är bara en textsträng, den representerar inte innehållet i textnoden för alla tillfällen, och .replace returnerar ett nytt värde, den byter inte ut det gamla automatiskt. appendChild lägger också bara till en nod, den byter inte ut noden som redan finns där. Tillsist tror jag också att det är en del problem med att sätta event-hanterare på skapade element på det sättet du gör.
var anchorText1 = "Visa Information"; var anchorText2 = "Dölj Informationen"; var anchor = document.createElement("a"); anchor.appendChild(document.createTextNode(anchorText1)); addEvent(anchor, 'click', function(){ this.firstChild.textContent=anchorText2; });
Se också till att du inte skriver över 'anchor' i en loop samtidigt om du också använder den innefrån event-hanteraren, då ändrar du texten i fel element. Att referera till 'this' kan vara en bättre idé.
Kan någon förklara för mig varför replace inte funkar, dvs. texten på länken ändras inte vid klick, och vad jag ska göra för att få det att funka?
var anchor = document.createElement("a"); var anchorText1 = "Visa Information"; anchor.appendChild(document.createTextNode(anchorText1)); anchor.onclick = function(event) { var anchorText2 = "Dölj Informationen"; anchor.appendChild(document.createTextNode(anchorText2)); anchorText1.replace(anchorText1, anchorText2);
Postat av Simon (213.89.66.60) den 24 Juni, 2010 kl 23:10:16.
Som svar på: javascript replace postat av nilla den 24 Juni, 2010 kl 11:11:54.