webForumDet fria alternativet

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

JavaScriptur 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 342 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

139 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)