2013-10-29 51 views
1

我得到以下错误(其中没有任何意义,我!!):数组未定义在循环

TypeError: jImages[i] is undefined   

代码:

$.ajax({ url: 'FilterByToestanden.php', 
     data: {aantal: $("#aantToestanden option:selected").text(), tekst: $('#bevat').val()}, 
     type: 'post', 
     success: function(data) { 
         var jImages = JSON.parse(data); 
         alert(jImages[0][0]); 
         var filteredImageList = new Array(); 
         for (var i=0, len = data.length; i< len; i++) 
         { 
         filteredImageList[i]=jImages[i][0]+jImages[i][1]; 
         } 
         alert(filteredImageList); 
        } 
}); 

回答

4

data.length应该是jImages.length

data.length是JSON字符串的长度,远远大于jImages数组的长度。所以你超越了数组的末尾,导致尝试访问未定义的元素。

+0

不知道为什么,否则它不会工作,但它的作品吧!谢谢 – Faarbhurtz

+0

如果你不了解其中的差异,你一定是完全不知情的,但我补充了一些解释。 – Barmar

2

data是一个字符串(JSON字符串),jImages是一个2d数组。一般来说,data.length(字符串字符数)与jImages(数组内的元素数)不同。

,你应该这样做:

for (var i=0, len = jImages.length; i< len; i++)