webForumDet fria alternativet

skapar en array och får värdet "undefined"??

JavaScript

3 svar · 514 visningar · startad av eddy1

Medlem sedan aug. 2001969 inlägg
Frågan#1

avänder ajax och får lite data hämtad via detta från en asp fil..
asp filen skriver ut information avsklijd med semikolon. såhär:

12:lisa;13:sarah;14:lars

och så här försöker jag hantera datan med javascript.. variabeln res inehåller datan...

arrTest = res.split(";");

var anr;
anr = arrTest.length;
for (i=0;i<=anr;i++){

arrTest2 = arrTest[i].split(":");

theOption=document.createElement("option");
theText=document.createTextNode(arrTest2[0]);
theOption.appendChild(theText);
myselect.appendChild(theOption);
}

vad jag vill uppnå är att jag skapar "options" för varje person och kopplar id nr till namnet.... Men som det är nu så får jag med 2 st Undefined poster i arrayen??

Någon med ideer??

Mvh

Medlem sedan dec. 20025 483 inlägg
#2
for (var i=0;i<anr;i++)
Medlem sedan aug. 20039 340 inlägg
#3

Dels använder du fel jämförelse. < inte <= är rätt för en sådan loop. Du läser alltså utanför arrayens bounds.
Dels så har den första splittade arrayen troligen en tom sträng som sista element pga ett semikolon på slutet. Jag rekommenderar nedanstående kod.
Dessutom har jag lagt till var i for-satsen. Detta deklarerar i lokalt i for-loopen och motverkar därmed variabel-krockar som kan uppstå i mer komplicerade situationer.

arrTest = res.split(";");

var anr;
anr = arrTest.length;
for (var i=0;i<anr-1;i++){

arrTest2 = arrTest[i].split(":");

theOption=document.createElement("option");
theText=document.createTextNode(arrTest2[0]);
theOption.appendChild(theText);
myselect.appendChild(theOption);
}
Medlem sedan aug. 2001969 inlägg
#4

okey...
det funkade som det skulle....

Tackar

257 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)