首页 > 解决方案 > 带有循环的传单 JS 在 JavaScript

问题描述

我正在尝试创建一个循环以将多个标记添加到传单地图。一个标记有效,但是当我尝试使用循环执行此操作时,标记不起作用。我从谷歌电子表格中收到标记的数据。

$(document).ready(function() {
    console.log("ready!");

    // ID of the Google Spreadsheet
    var spreadsheetID = "spreadsheetID";
    // Make sure it is public or set to Anyone with link can view 
    var url = "https://spreadsheets.google.com/feeds/list/" + spreadsheetID + "/1/public/values?alt=json";

    $.getJSON(url, function(data) {

        var entry = data.feed.entry;
        var amount = entry.lenght;

        var i;
        for (i = 0; i <= amount; i++) {

            var lat = data.feed.entry[i]['gsx$lat']['$t'];
            var lon = data.feed.entry[i]['gsx$lon']['$t'];
            var name = data.feed.entry[i]['gsx$name']['$t'];
            var to = data.feed.entry[i]['gsx$to']['$t'];
            var time = data.feed.entry[i]['gsx$time']['$t'];
            var tel = data.feed.entry[i]['gsx$tel']['$t'];

            var marker = L.marker([lon, lat]).addTo(mymap);
            marker.bindPopup('<b>Name:</b> ' + name + '<br><b>To:</b> ' + to + '<br><b>Time:</b> ' + time + '<br><b> Tel:</b> ' + tel);
        }
    })
});

标签: javascriptjqueryfor-loopleaflet

解决方案


您的代码有错字和 LatLng 问题已修复:

$(document).ready(function() {
console.log("ready!");

// ID of the Google Spreadsheet
var spreadsheetID = "spreadsheetID";
// Make sure it is public or set to Anyone with link can view 
var url = "https://spreadsheets.google.com/feeds/list/" + spreadsheetID + "/1/public/values?alt=json";

$.getJSON(url, function(data) {

    var entry = data.feed.entry;
    var amount = entry.length;

    var i;
    for (i = 0; i < amount; i++) {

        var lat = data.feed.entry[i]['gsx$lat']['$t'];
        var lon = data.feed.entry[i]['gsx$lon']['$t'];
        var name = data.feed.entry[i]['gsx$name']['$t'];
        var to = data.feed.entry[i]['gsx$to']['$t'];
        var time = data.feed.entry[i]['gsx$time']['$t'];
        var tel = data.feed.entry[i]['gsx$tel']['$t'];

        var marker = L.marker([lat, lon]).addTo(mymap);
        marker.bindPopup('<b>Name:</b> ' + name + '<br><b>To:</b> ' + to + '<br><b>Time:</b> ' + time + '<br><b> Tel:</b> ' + tel);
    }
})
});

推荐阅读