2011-03-29 4 views
0

Я даже не получил подсказки. Что случилось с IE9?Невозможно получить длину в массиве

<script type="text/javascript"> 
    var countrieslist=document.sc.s1 
    var subjlist=document.sc.s2 

    var subj=new Array() 
    subj[0]="" 
    subj[1]=["New York|newyorkvalue", "Los Angeles|loangelesvalue", "Chicago|chicagovalue", "Houston|houstonvalue", "Austin|austinvalue"] 
    subj[2]=["Vancouver|vancouvervalue", "Tonronto|torontovalue", "Montreal|montrealvalue", "Calgary|calgaryvalue"] 
    subj[3]=["London|londonvalue", "Glasgow|glasgowsvalue", "Manchester|manchestervalue", "Edinburgh|edinburghvalue", "Birmingham|birminghamvalue"] 

function updateSubj(selectsubj) { 
    if (selectsubj>0){ 
     for (i=0; i<subj[selectsubj].length; i++) { 
     alert("ss"); 
      //s2.options[subjlist.options.length]=new Option(subj[selectsubj][i].split("|")[0], subj[selectsubj][i].split("|")[1]) 
     } 
    } 
} 
</script> 
+1

, что означает субъективизацию [selectsubj] не имеет каких-либо предметов. попробуйте оповестить длину перед циклом for – corroded

+0

Я попытался изменить на subj [1] .length, но он все равно не предупреждает. – Jame

+0

Где вы звоните updateSubj ?, который является значением selectsubj ?, вы уверены, что его> 0, правильно? – Morvader

ответ

0

Я должен проверить, является ли это массивом.

function update (i) { 
    if (subj[i] instanceof Array) 
     for(var j in subj[i]) 
      alert(subj[i][j]); 
    else 
     alert(subj[i] || 'is undefined'); 
} 

Вы также можете проверить, если это итератор, проверив свойство длины

if (subj[i].length) // iterate list 
Смежные вопросы