26. februar 2007 - 16:37Der er
6 kommentarer og 1 løsning
sætte class med setAttribute virker ikke
jeg har følgende funktion og den virker næsten..
function skift_overskrift(tekst) { var El = document.getElementById('stat_overskrift'); while(El.hasChildNodes()) { El.removeChild(El.firstChild); } var newEl = document.createElement('p'); newEl.setAttribute('class', 'overskrift_stat'); var newTxtEl = document.createTextNode(tekst); El.appendChild(newEl); El.appendChild(newTxtEl); var newEl = document.createElement('br'); El.appendchild(newEl); if(tekst=='Samlet Oversigt'){ var newEl2 = document.createElement('p'); newEl2.setAttribute('class', 'syn_pr_mnd'); newEl2.className = 'syn_pr_mnd'; var newTxtEl2 = document.createTextNode('Antal syn pr. måned'); El.appendChild(newEl2); El.appendChild(newTxtEl2); } }
jeg kan ikke få følgende til at virke.. var newEl = document.createElement('br'); El.appendchild(newEl);
og
newEl2.setAttribute('class', 'syn_pr_mnd');
Af en eller anden grund kan den ikke finde ud af at tilføje en <br> på den måde og derefter tilføje teksten.. og den kan heller ikke finde ud af setAttribute() som overskriften antyder
Nogen her der kan komme med et forslag til hvad der skal til for at få det til at virke??
OK appendChild er rettet, men det gav ikke nogen forskel..
Og det med className er ikke nogen issue eftersom det ikke virker i FF2.. Jeg har også prøvet at bruge className men det virkede heller ikke, som du kan se i koden newEl2.className = 'syn_pr_mnd';
Om det vil være anderledes hvis jeg bruger newEl2.setAttribute('className', 'syn_pr_mnd'); det har jeg ikke prøvet endnu..
nåh jeg finder lige det nærmeste hul jeg kan gemme mig i.. det her er godt nok pinligt.. de nye txtnoder skulle appendes til de nye p-tags ikke til div-tagget udenom.. altså sådan her i stedet for: function skift_overskrift(tekst) { var El = document.getElementById('stat_overskrift'); while(El.hasChildNodes()) { El.removeChild(El.firstChild); } var newEl = document.createElement('p'); newEl.setAttribute('class', 'overskrift_stat'); newEl.className = 'overskrift_stat'; var newTxtEl = document.createTextNode(tekst); newEl.appendChild(newTxtEl); El.appendChild(newEl); var newEl = document.createElement('br'); El.appendchild(newEl); if(tekst=='Samlet Oversigt'){ var newEl2 = document.createElement('p'); newEl2.setAttribute('class', 'syn_pr_mnd'); newEl2.className = 'syn_pr_mnd'; var newTxtEl2 = document.createTextNode('Antal syn pr. måned'); newEl2.appendChild(newTxtEl2); El.appendChild(newEl2); } }
Så virker det i begge browsere - selvom der f.eks. i FF bliver sat en className-attribut, der ikke bruges til noget. Det har været diskuteret i W3C-regi og FF er korrekt på den i dette tilfælde - men check lige, hvad IE7 gør ;o)
Jeg testede med IE7 og FF og det virkede ikke i IE7 uden className så der har de ikke ændret på noget, desværre
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.