4

ドロップダウンから状態を選択すると、状態が自動的に表示されるjqueryユーティリティを作成しました。ユーザーエクスペリエンスを向上させるために、ストアを3つの列に分割するロジックを追加しました。これは、IEを除くすべてのブラウザで正しく機能しています。

コンソールに表示されるエラーが.change()、IEでイベントがトリガーされない原因となるエラーと同じかどうかはわかりませんが、言及したいと思います。私が得ているコンソールエラーは次のとおりです。

Uncaught TypeError:未定義のプロパティ'store_url'を読み取ることができません

コードは次のとおりです。

else if (store_remainder === 0) {
   for(var i = 0; i < check; i++) {
      store_col_1.append("<li class='current_store'><a href='" +   data[i].store_url + "'>" + data[i].store_name + "</a></li>");
   }
   for(var i = check; i < (check * 2); i++) {
      store_col_2.append("<li class='current_store'><a href='" + data[i].store_url + "'>" + data[i].store_name + "</a></li>");
   }
   for(var i = (check * 2); i <= data.length; i++) {
      store_col_3.append("<li class='current_store'><a href='" + data[i].store_url + "'>" + data[i].store_name + "</a></li>");
   }    
}

エラーは最後の「for」ブロックでのみ発生します。これにより、最後の反復を実行しようとしますが、値を取得せず、nullとして返されると思われます。この場合、どうすればこれを修正できますか?

4

4 に答える 4

6

これ:

for(var i = (check * 2); i <= data.length; i++) {

でなければなりません:

for(var i = (check * 2); i < data.length; i++) {
       //without '=' -------^

いつものようsomearray[somearray.length]に。 undefined

于 2012-11-27T14:36:24.600 に答える
1

for(var i = (check * 2); i<= data.length; i++)

エラーはに存在します<=。それをに変更します<

于 2012-11-27T14:36:54.850 に答える
0

最後のループでは、次を使用する必要があります。

for(var i = (check * 2); i < data.length; i++)

data[data.length]が未定義であるため

于 2012-11-27T14:38:04.350 に答える
0

i <= data.lengthではなく、i <data.lengthに移動するのは最後ではありませんか?

于 2012-11-27T14:38:16.800 に答える