Avatar billede razmuz_dk Nybegynder
15. maj 2006 - 14:57 Der er 4 kommentarer og
1 løsning

JS's DOM og linjeskift

Jeg har en <div>, som jeg er nødt til at fastsætte en absolut width på. I denne <div> tilføjes en ny div-element-node. I denne div-node tilføjer jeg en tekst-node med et navn, fx "Anders And". Dette navn skal være centreret i forhold til den yderste div. I HTML/CSS kunne man skrive det sådan
<div style="width: 400px; text-align: center;">
  <div>Et navn</div>
</div>

Problemet er nu, at jeg skal have navnet til at fylde så lidt som muligt i bredden. Derfor vil jeg erstatte alle mellemrum i navnet med linjeskift. Jeg kan ikke bare .replace(' ', '<br>') og så indsætte det som .nodeValue jo - det vil bare resultere i "<br>" som tekst og ikke som et linjeskift. Husk på at jeg heller ikke kan nedsætte bredden af det yderliggende element, da denne bredde skal være absolut. Jeg kan heller ikke nedsætte bredden på den "inderste div", da dette vil bevirke at teksten ikke står centreret i forhold til den yderliggende div.

Den eneste løsning jeg kan se er at oprette lige så mange elementer med createElement('div') som der skal være linjer. Er den antagelse korrekt? Eller findes der andre alternativer, hvilke?

På forhånd tak.
- Rasmus
Avatar billede roenving Novice
15. maj 2006 - 16:44 #1
var txt = "et navn";
txt = txt.split(" ");
for(i=0;txt.length>i;i++){
  div.appendChild(document.createTextNode(txt[i]);
  div.appendChild(document.createNode("br");
}

-- den vil så tilføje et <br> mere end nødvendigt, men den kan du vel selv regulere !-)

PS. Den kommer så til at se sådan ud:

for(i=0;txt.length-1>i;i++){
  div.appendChild(document.createTextNode(txt[i]);
  div.appendChild(document.createNode("br");
}
div.appendChild(document.createTextNode(txt[i]);
Avatar billede razmuz_dk Nybegynder
15. maj 2006 - 16:59 #2
Nå ja!... fjollegokkelokke! Tak for det.

Lige et tillægsspørgsmål: HVad er forskellen på createNode og createElement?
Avatar billede roenving Novice
15. maj 2006 - 17:03 #3
-- at jeg ikke havde kigget i min reference, hvor createNode ikke findes, det hedder selvfølgelig createElement !-)

-- els velbekomme '-)
Avatar billede razmuz_dk Nybegynder
15. maj 2006 - 17:11 #4
Hehe okay - syn's heller ik' jeg lige havde set den før :P
Avatar billede roenving Novice
15. maj 2006 - 17:15 #5
-- og jeg takker 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