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');