数组关于javascript中未捕获的TypeError

数组关于javascript中未捕获的TypeError,javascript,jquery,Javascript,Jquery,这是我代码的一部分 但在控制台中出现了: 未捕获的TypeError:无法读取未定义的属性“title” 我不知道为什么alert(数据[index].title)不显示 那么,我该怎么做呢 var data = []; var api = function () { clear_overlays(); var url = 'http://tw.tranews.com/map/dStores.asp?x1=' + bounds.x1 + '&

这是我代码的一部分

但在控制台中出现了:

未捕获的TypeError:无法读取未定义的属性“title”

我不知道为什么
alert(数据[index].title)不显示

那么,我该怎么做呢

var data = [];

    var api = function () {

        clear_overlays();

        var url = 'http://tw.tranews.com/map/dStores.asp?x1=' + bounds.x1 + '&x2=' + bounds.x2 + '&y1=' + bounds.y1 + '&y2=' + bounds.y2;

            $.get('proxy.php', {url: url}, function (resp) {

            var near = $('.near');
            near.empty();

            var xml = $(resp); 
                var data = xml.find('m');

            $.map(data, function (obj, i) {
                var m = $(obj);
                        var latlng = new google.maps.LatLng(m.find('vLat').text(), m.find('vLng').text());
                var title = m.find('vName').text();

                        var markerOptions = {
                            map: map,
                            position: latlng,
                            title: title
                        };
                        var marker = new google.maps.Marker(markerOptions);
                        markers.push(marker);
                        marker.setMap(map);


                        var store = {
                          image: m.find('vImg1').text(),
                          title: m.find('vName').text()

                        };
                        data.push(store);

                        var image = m.find('vImg1').text();                         
                        var html = '<div class="perview"><a href="#"><img src="'+image+'" width="50" height="50" alt="'+title+'" /></a></div>'; 
                        $(html).appendTo(near);                         
            }); 
                $('.perview').on("click", "img", function(){
                    var index = $('.preview img').index(this);

                      alert(data[index].title);
                /*var msg = '<div class="preview">' + $(this).attr('alt') + '</div>';
                    $('.info_content').animate({opacity: 1}, 300, function () {                         
                        $('.info').hide().empty().append(msg).delay(300).fadeIn(500);
                    });*/
                });
            }, 'XML');
    };
var数据=[];
var api=函数(){
清除覆盖物();
var url='1〕http://tw.tranews.com/map/dStores.asp?x1=“+bounds.x1+”&x2=”+bounds.x2+”&y1=“+bounds.y1+”&y2=”+bounds.y2;
$.get('proxy.php',{url:url},函数(resp){
var near=$('.near');
near.empty();
var xml=$(resp);
var data=xml.find('m');
$.map(数据、功能(obj、i){
var m=$(obj);
var latlng=new google.maps.latlng(m.find('vLat').text(),m.find('vLng').text());
var title=m.find('vName').text();
变量标记选项={
地图:地图,
位置:latlng,
标题:标题
};
var marker=新的google.maps.marker(markerOptions);
标记器。推(标记器);
marker.setMap(map);
变量存储={
image:m.find('vImg1').text(),
标题:m.find('vName').text()
};
数据推送(存储);
var image=m.find('vImg1').text();
var html='';
$(html).appendTo(近);
}); 
$('.perview')。在(“单击”,“img”,函数()上){
风险值指数=$('.preview img').index(本);
警报(数据[索引].标题);
/*var msg=''+$(this.attr('alt')+'';
$('.info_content')。动画({opacity:1},300,function(){
$('.info').hide().empty().append(msg).delay(300).fadeIn(500);
});*/
});
}“XML”);
};
可能是问题所在,因为
perview
不是
preview
。如果元素不在集合中,
.index
返回
-1
,该值不作为数组的索引。我不知道您的标记,但您可能应该重命名其中一个

 $('.perview').on("click", "img", function(){
     var index = $('.preview img').index(this);