Javascript 缺少jQuery数据属性值

Javascript 缺少jQuery数据属性值,javascript,jquery,Javascript,Jquery,我在中有两个数据属性,它们具有地图的lat和lng: <option id="riderInfo" data-lat="" data-lng=""></option> 我正在打印它的价值: console.log(lat) 从select中获取值的实际代码,并将其提供给地图,因此地图将更改到给定位置 $(document).ready(function(){ var lat = $("#riderInfo").val($(this).data('lat'));

我在
中有两个数据属性,它们具有地图的
lat
lng

<option id="riderInfo" data-lat="" data-lng=""></option>
我正在打印它的价值:

console.log(lat)
从select中获取值的实际代码,并将其提供给地图,因此地图将更改到给定位置

$(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));
      }
  }
});

我缺少什么?

通过使用jquery设置值,返回元素的jquery对象并将其设置为变量。您应该使用:

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

通过使用jquery设置值,返回元素的jquery对象并将其设置为变量。您应该使用:

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

给你一个解决方案

$(文档).ready(函数(){
var lat=parseFloat($(“#riderInfo”).data('lat');
var lng=parseFloat($(“#riderInfo”).data('lng');
控制台日志(lat);
google.maps.event.addDomListener(窗口'load',init);
函数init(){
变量位置=[
[“骑手”,拉丁美洲,液化天然气,3]
];
var map=new google.maps.map(document.getElementById('map'){
缩放:10,
中心:新google.maps.LatLng(lat,lng),
mapTypeId:google.maps.mapTypeId.ROADMAP
});
var infowindow=new google.maps.infowindow();
var标记,i;
对于(i=0;i});给你一个解决方案

$(文档).ready(函数(){
var lat=parseFloat($(“#riderInfo”).data('lat');
var lng=parseFloat($(“#riderInfo”).data('lng');
控制台日志(lat);
google.maps.event.addDomListener(窗口'load',init);
函数init(){
变量位置=[
[“骑手”,拉丁美洲,液化天然气,3]
];
var map=new google.maps.map(document.getElementById('map'){
缩放:10,
中心:新google.maps.LatLng(lat,lng),
mapTypeId:google.maps.mapTypeId.ROADMAP
});
var infowindow=new google.maps.infowindow();
var标记,i;
对于(i=0;i});你的问题一点也不清楚。这是什么?
data lat
data lng
的值是多少,该结果应该显示什么,您如何检查?什么是HTML?为什么要设置相同的值两次?第一个调用是完全多余的。@RoryMcCrossan我已经更新了问题,您是对的问题不清楚#riderInfo不能是“this”,我想您只是想将它切换到值,所以请尝试
$(“#riderInfo”).val($(“#riderInfo”).data('lat')
前两行比较混乱。你想获取或设置值吗?@Rorymcrossan我想获取数据并将其交给地图。你的问题一点也不清楚。这是什么?
data lat
data lng
的值是多少,该结果应该显示什么,您如何检查?什么是HTML?为什么要设置相同的值两次?第一个调用是完全多余的。@RoryMcCrossan我已经更新了问题,您是对的问题不清楚#riderInfo不能是“this”,我想您只是想将它切换到值,所以请尝试
$(“#riderInfo”).val($(“#riderInfo”).data('lat')
前两行比较混乱。你想获取或设置值吗?@Rorymcrossan我想获取数据并将其交给地图。不<代码>$(“#riderInfo”).val($(this.data('lat'))
将返回元素
“#riderInfo
的jquery对象。您可以在控制台
$('input:eq(1)')中记录此操作。val('koala')
和checkAh我明白您的意思。我们以不同的方式处理此问题。您假设OP正在尝试在
lat
中获取数据值。我假设他们正在尝试设置
val()元素的
。确实不清楚OP试图做什么。不。
$(“#riderInfo”).val($(this.data('lat'));
将返回元素的jquery对象
“#riderInfo。您可以在控制台
$('input:eq(1)]。val('koala和checkAh我明白您的意思了。我们用不同的方式来解决这个问题。假设OP正在尝试获取
lat
中的数据值。我假设他们试图设置元素的
val()
。现在还不清楚OP想要做什么。
var lat = $('#riderInfo').data('lat');
var lng = $('#riderInfo').data('lng');