Avatar billede lsolesen Nybegynder
22. august 2004 - 21:26 Der er 6 kommentarer og
1 løsning

DOM alternativ til innerHTML

Jeg vil gerne lave DOM-alternativet til innerText, men har lidt problemer:

Følgende javascriptkode:

var credit1 = document.getElementById("credit_account_number_1");
var sp1 = document.createElement('span');
sp1.appendChild(document.createTextNode('+'));
sp1.setAttribute('onclick', "accountWindowOpen('credit_account_number_1');");
credit1.parentNode.appendChild(sp1);
       
svarer ganske fint til:                

var creditspan = document.getElementById("creditspan");
if (creditspan) {
  creditspan.innerHTML = '<span onclick="accountWindowOpen(\'credit_account_number_1\');">+</span>';
}       

Men den øverste version skriver + nedenunder mit input-fejl, mens den sidste skriver det bagved (som det skal).

Yderligere vil jeg gerne ændre indholdet af et tag med DOM'en. Går fint med innerHTML:

elm[i].innerHTML = '<a href="#" onclick="IndsaetVaerdi(\''+getInnerText(elm[i])+'\');">'+getInnerText(elm[i])+'</a>';

Men jeg vil gerne gøre det samme med rigtig DOM i stedet?
Avatar billede roenving Novice
23. august 2004 - 04:24 #1
Har du prøvet at sætte display til inline i den første version ?-)

-- og hvis du har en creditspan i forvejen, er det vel ikke nødvendigt at oprette en ny span ?o]

Rigtig DOM ?-)

Mener du:

var newA = document.createElement("A");
newA.innerHTML = getInnerText(elm[i]);
newA.href="#";
newA.onclick = function(){IndsaetVaerdi('"'+getInnerText(elm[i])+'"');return false;};
elm[i].replaceChild(newA,elm[i].firstChild);
Avatar billede lsolesen Nybegynder
23. august 2004 - 08:45 #2
Der er kun en creditspan i forvejen, fordi jeg jo har brugt innerHTML, men den skal slettes og så skal objektet i stedet oprettes med DOM'en.

Jeg har forsøgt med display: inline;

Den anden version er ikke rigtig DOM, for innerHTML er jo ikke en del af DOM'en, men jeg har forsøgt at implementere den. Jeg kan godt få tingene til at virke i Mozilla, men de fungerer ikke i IE.

http://www.onlinefaktura.dk/test/test.php
Avatar billede roenving Novice
24. august 2004 - 02:26 #3
Jeg kan heller ikke finde innerHTML i ecma-script-definitionen, men de browsere, jeg kender, kender også innerHTML (og alternativet er vel at bruge .value, som er endnu mere usikker, da en masse browsere har svært ved at oversætte det til html !-)

-- og hvorfor slette en span, du har i forvejen, for det er vel nemmere at ændre dens egenskaber end at oprette en ny og erstatte den ?-)
Avatar billede lsolesen Nybegynder
25. august 2004 - 08:50 #4
Jeg har droppet innerHTML, og det virker fint i Mozilla. Desværre kan jeg stadig ikke få det til at fungere i IE. Hvad kan være galt?

http://www.onlinefaktura.dk/test/test.php

Samtidig har jeg lavet noget XMLHttpRequest, og det kan jeg også kun få til at virke i Mozilla, og det undrer mig lidt, idet stedet hvor jeg tager eksemplet fra virker glimrende:

http://www.sitepoint.com/blog-post-view.php?id=185942
http://jibbering.com/2002/4/httprequest.html
Avatar billede lsolesen Nybegynder
10. juni 2006 - 17:34 #5
Svar venligst!
Avatar billede roenving Novice
25. juli 2006 - 01:06 #6
Oki '-)
Avatar billede roenving Novice
28. juli 2006 - 15:31 #7
-- og tak for point ;~}
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester