2011-03-29 11 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

をチェックして反復可能だ場合にも確認することができます。 forループの前に長さを警告してみてください – corroded

+0

私はsubj [1] .lengthに変更しようとしましたが、まだ警告しません。 – Jame

+0

ここでは、selectubjの値はどこですか?updateSubj?を呼び出していますか? – 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'); 
} 

それはSUBJは[selectsubj]すべてのアイテムを持っていないことを意味lengthプロパティ

if (subj[i].length) // iterate list 
関連する問題