Avatar billede dennism Nybegynder
28. oktober 2006 - 15:24 Der er 8 kommentarer og
1 løsning

JavaScript: getElement

Her ser I starten af min funktion:

function insertTag(lang, tag) {
    var txtarea = document.update.lang;
...

Som I ser, har jeg en variabel der hedder lang, den kan f.eks. enten være da eller en.
Hvordan kan jeg få JavaScript til at forstå, at når lang=da skal txtarea referer til "document.update.da" og når lang=en til "document.update.en"?

Håber I forstår mit problem :)
Avatar billede jhe-ting Nybegynder
28. oktober 2006 - 15:48 #1
Specifikt:

if (lang=="en")
  textarea = document.update.en;
else
  textarea = document.update.da;


Generelt:

textarea = eval("document.update."+lang);
Avatar billede dennism Nybegynder
28. oktober 2006 - 16:00 #2
Mange tak ;)
Avatar billede erikjacobsen Ekspert
28. oktober 2006 - 16:50 #3
Man skal ikke bruge eval i javascript, når man nu kan undgå det.

Du kan fx sætte en id på dine to textarea, <textarea id="da" ...> osv, og så ganske enkelt

  var textarea = document.getElementById(lang);
Avatar billede dennism Nybegynder
28. oktober 2006 - 17:38 #4
Ok, tak for bemærkningen. Men hvorfor skal man holde sig fra eval?
Avatar billede erikjacobsen Ekspert
28. oktober 2006 - 19:12 #5
1) Det er langsomt (måske uden synderlig betydning, hvis der kun er een anvendelse på en side)
2) Det findes ikke i rigtig XHTML, altså version 2.0, som om nogle år måske bliver standarden på websider.
Avatar billede erikjacobsen Ekspert
28. oktober 2006 - 19:15 #6
2a) Eller også findes det under XHTML 2.0 - ved nærmere eftertanke ved jeg det faktisk ikke. Men i hvert fald er det grisset kode.
Avatar billede dennism Nybegynder
28. oktober 2006 - 19:41 #7
Heh..tak for det :)
Men det jo ikke nemt som udvikler at vide, om en funktion er "god" eller "ond" :)
Avatar billede mclemens Nybegynder
28. oktober 2006 - 21:54 #8
var txtarea = document.update[lang];

- ved dot notation kan man ikke bruges en pegning via en variabel,
så er det eval, der skal bruges eller mere optimalt: Det direkte med id,
som vist af Erik - ellers en [] notation, hvor man så kan bruge variablen.
... se evt. også Ole's artikel: http://www.eksperten.dk/artikler/227 ...
Avatar billede olebole Juniormester
30. oktober 2006 - 10:42 #9
<ole>

eval() hører til under JavaScript. Det ændrer sig ikke ved XHTML2.0 - men her er det til gengæld absolut nødvendigt _kun_ at bruge standardiserede ECMA-DOM bindinger ... document.getElementById, document.getElementsByTagName, ELEMENT.getAttribute, ELEMENT.setAttribute, osv  :)

/mvh
</bole>
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