我对列表中的每个项目都有以下数据属性:
data-latlng="[{"lat":40.7713024, "lng":-73.9632393}]"
我可以将其转换为像
这样的对象数组arr = $(this).data("latlng");
$.each(arr, function(index, value) {
coords.push({'details': value});
});
然后引用lat例如:
for(var i = 0; i < coords.length; i++){
console.log(coords[i].details.lat);
}
然而现在我需要一些额外的信息,比如标题..但是现在它的多维我不能再引用或访问它了......有什么想法吗?!
data-latlng="[{title:"Johns place", location:{lat:40.7713024, lng:-73.9632393}}]"
var coords = [
{title: 'Johns place', location: {lat: 40.7713024, lng: -73.9632393}},
{title: 'Jacks Loft', location: {lat: 40.7444883, lng: -73.9949465}},
];
答案 0 :(得分:1)
不确定为什么你有属性和位置。如果您使用以下内容,则可以更轻松地访问纬度和经度:
data-latlng="[{“title”:"Johns place", “lat”:40.7713024, ”lng“:-73.9632393}]"
无论如何,以下是我提出的解决方案。希望它可以提供帮助。
$('li').each(function() {
arr = $(this).data("details")[0];
/* Not really needed actually
coords = [];
$.each(arr, function(index, value) {
coords[index] = value;
});
*/
$('#title').html(arr.title);
$('#latitude').html(arr.location.lat);
$('#longitude').html(arr.location.lng);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li data-details='[{"title":"Johns place", "location":{"lat":40.7713024, "lng":-73.9632393}}]'>Johns Place</li>
</ul>
<div id="title">
</div>
<div id="location">
<label>Location</label>
<span id="latitude"></span>
<span id="longitude"></span>
</div>
&#13;
答案 1 :(得分:0)
更正你的json字符串
{
"coords": [{
"title": "Johns place",
"location": [{
"lat": 40.7713024,
"lng": -73.9632393
}]
}, {
"title": "Johns place",
"location": [{
"lat": 40.7713024,
"lng": -73.9632393
}]
}]
}
访问代码
var latitude = data.coords.location[0].lat;
console.log('Latitude : ', latitude);
var longitude = data.coords.location[0].lng;
console.log('Longitude : ', longitude);