0

我现在正在使用这个 JSON 链接来访问数据,如果我将鼠标悬停在特定标记上,我想访问地名!

$.getJSON('http://anyorigin.com/get?url=https%3A//maps.googleapis.com/maps/api/place/nearbysearch/json%3Flocation%3D-33.8670522%2C151.1957362%26radius%3D5000%26types%3Dfood%26name%3Dharbour%26sensor%3Dfalse%26key%3DAIzaSyAYMqH361IS1S9SA4atjBPCDlLpJ4mr6Sw&callback=?', function (data) {
    var responseData = data.contents;
});

events: {
    mouseover: function (marker, event, context) {
        console.log(responseData.results[this].name)
    }
},
4

3 回答 3

0

在这里你可以像这样使用循环

      $.each(responseData , function (index, value) {
            console.log(value.name)
      });
于 2013-11-07T11:08:14.697 回答
0

假设响应数据的返回类型是有效的,我怀疑使用 results[this] 会导致数据一致。

您应该检查 responseData.results 包含的内容以查看要显示的数据(添加“调试器;”并检查 responseData.results)。

var responseData;
$.getJSON('http://...', function (data) 
{
    responseData = data.contents;
});

events: 
{
    mouseover: function (marker, event, context) 
    {
        debugger; // remove after inspect responseData and extract the worthy data
        console.log(responseData.results)
    }
},
于 2013-11-07T11:08:28.010 回答
0

在你的代码中this是指moverover事件。所以问题是也可以responseData 作为全局变量。

更新:

这是一个简单的方法

var responseData = data.contents;
    var res = responseData.results;
    for (var i = 0; i < res.length; i++) {
        console.log(res[i].name)
    }

JSFiddle

于 2013-11-07T11:03:07.633 回答