2017-09-13 55 views
0

我在<option>兩個數據屬性,這些屬性在地圖中latlngjQuery的數據屬性值丟失

<option id="riderInfo" data-lat="" data-lng=""></option> 

的Jquery:

var lat = $("#riderInfo").val($(this).data('lat')); 
var lng = $("#riderInfo").val($(this).data('lng')); 

我打印它的值:

console.log(lat) 

從select和gi中獲取值的實際代碼對地圖,所以地圖將chnage到指定的位置。的console.log(lat)

$(document).ready(function(){ 
    var lat = $("#riderInfo").val($(this).data('lat')); 
    var lng = $("#riderInfo").val($(this).data('lng')); 
    console.log(lat); 

    google.maps.event.addDomListener(window, 'load', init); 
    function init() { 
    var locations = [ 
     ['Rider', 33.686073, 73.0175017, 3] 
     ]; 
     var map = new google.maps.Map(document.getElementById('map'), { 
     zoom: 10, 
     center: new google.maps.LatLng(33.68, 73.01), 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
     }); 
     var infowindow = new google.maps.InfoWindow(); 
     var marker, i; 
     for (i = 0; i < locations.length; i++) { 
     marker = new google.maps.Marker({ 
      position: new google.maps.LatLng(locations[i][1], locations[i][2]), 
      map: map 
     }); 
     google.maps.event.addListener(marker, 'click', (function(marker, i) { 
      return function() { 
      infowindow.setContent(locations[i][0]); 
      infowindow.open(map, marker); 
      } 
     })(marker, i)); 
     } 
    } 
}); 

結果是:

[option#riderInfo, context: document, selector: "#riderInfo"] 

我在想什麼?

+1

你的問題並不十分清楚。什麼是'這個'? 'data-lat'和'data-lng'的價值是什麼?應該顯示的結果是什麼,以及如何檢查它?什麼是HTML?你爲什麼設置兩次相同的值?第一個電話是完全多餘的。 –

+0

@RoryMcCrossan我已經更新了這個問題,你說得對,問題並不清楚 – Gammer

+0

#riderInfo不能是'this'我假設你只是想把它切換到值,所以試試'$(「#riderInfo」) .val($('#riderInfo')。data('lat'))' – nodws

回答

1

通過使用jquery設置值,元素的jquery對象被返回並設置爲變量。你應該用:

var lat = $('#riderInfo').data('lat'); 
var lng = $('#riderInfo').data('lng'); 
+0

這在邏輯上與OP已經有的相同 –

+0

No. $(「#riderInfo」)。val($(this).data ('lat'));''會返回元素'「#riderInfo'的jquery對象 –

+0

你可以在控制檯'$('input:eq(1)')。val('koala')'處記錄這個對象,並且檢查 –

1

在這裏,你去了一個解決方案

$(document).ready(function(){ 
 
    var lat = parseFloat($("#riderInfo").data('lat')); 
 
    var lng = parseFloat($("#riderInfo").data('lng')); 
 
    console.log(lat); 
 

 
    google.maps.event.addDomListener(window, 'load', init); 
 
    function init() { 
 
    var locations = [ 
 
     ['Rider', lat, lng, 3] 
 
     ]; 
 
     var map = new google.maps.Map(document.getElementById('map'), { 
 
     zoom: 10, 
 
     center: new google.maps.LatLng(lat, lng), 
 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
 
     }); 
 
     var infowindow = new google.maps.InfoWindow(); 
 
     var marker, i; 
 
     for (i = 0; i < locations.length; i++) { 
 
     marker = new google.maps.Marker({ 
 
      position: new google.maps.LatLng(locations[i][1], locations[i][2]), 
 
      map: map 
 
     }); 
 
     google.maps.event.addListener(marker, 'click', (function(marker, i) { 
 
      return function() { 
 
      infowindow.setContent(locations[i][0]); 
 
      infowindow.open(map, marker); 
 
      } 
 
     })(marker, i)); 
 
     } 
 
    } 
 
});

獲取的latlng到變量&的數據值的map函數使用它

希望這會幫助你。