Avatar billede balusta Nybegynder
05. maj 2004 - 12:08 Der er 4 kommentarer

Array[variable] problem

Jeg har denne funktion som får tilført en integer (id)

var units = new Array();

function UnitAdd(id)
{
    units[id] = units[id] + 1;
    document.getElementById(id).innerHTML = units[id];
}

givet af id = 1 vil jeg gerne have units[1] til at tælle op og opdatere innerHTML hver gang funktionen kaldes.  I stedet for en værdi får jeg "NaN". :-(

units[id]++ ? giver samme resultat

På forhånd tak
Avatar billede erikjacobsen Ekspert
05. maj 2004 - 12:12 #1
Se nedenfor for en simplere version af dit problem. Du kan se at det kan
anbefales at initialisre dit array:

var units = new Array();
units[7]=0;

function UnitAdd(id)
{
    units[id] = units[id] + 1;
    alert(units[id]);
}

UnitAdd(7);
Avatar billede balusta Nybegynder
05. maj 2004 - 12:48 #2
Initialiseringen hjalp, det var lige det der skulle til for at jeg kom videre.

Det blev til:

function UnitAdd(id)
{
    if (!units[id])
    {
        units[id] = 0;
    }
    units[id] = units[id] + 1;
    document.getElementById(id).innerHTML = units[id];
}

tak for hjælpen
Avatar billede olebole Juniormester
05. maj 2004 - 13:22 #3
<ole>

NB: I HTML kan du ikke have id'er, der begynder med et tal  :)

/mvh
</bole>
Avatar billede erikjacobsen Ekspert
05. maj 2004 - 13:32 #4
Og hvis man tror at Ole sidder og finder på alsken mystiske regler selv,
kan man lige kigge på
  http://www.w3.org/TR/html4/types.html#type-name
og blive overbevist om, at han har ret. Der er garanteret uautoriserede
fabrikanter af browsere, der ikke overholder denne regel.
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