我有一个搜索应用程序,可以获取一个地方列表。这些位置和名称将位于属性标记中,例如
<div data-location="22.4245,-15.000" data-id="place_name_1">Place Name 1</div>
<div data-location="23.4435,-13.000" data-id="place_name_2">Place Name 2</div>
<div data-location="27.42755,-13.000" data-id="place_name_3">Place Name 3</div>
我正在使用此信息在Google地图中获取标记。我正在看他们的documentation,我想知道如何在javascript中将这些信息导入数组?如果你看一下这个链接,就会有这样一个数组:
var beaches = [
['Bondi Beach', -33.890542, 151.274856, 4],
['Coogee Beach', -33.923036, 151.259052, 5],
['Cronulla Beach', -34.028249, 151.157507, 3],
['Manly Beach', -33.80010128657071, 151.28747820854187, 2],
['Maroubra Beach', -33.950198, 151.259302, 1]
];
在javascript中从html获取数据到数组需要做什么?
谢谢!
答案 0 :(得分:1)
试试这个:
var $beaches = [];
$.find("div").each(function(){
var $loc = [];
$loc.push($(this).html());
$loc.push($(this).attr("data-location"));
$loc.push($(this).attr("data-id"));
$loc.push(2);
$beaches.push($loc);
});
答案 1 :(得分:0)
var beaches = [];
$('div[data-location][data-id]').each(function() {
beaches.push([
[$(this).attr('data-id')]
.concat(
$(this).attr('data-location').split(","),
[2]
)
]);
});
答案 2 :(得分:0)
使用jQuery,您可以解析HTML:
var beaches = [];
// iterate over all <div>s (assuming they're always in that format)
$('div').each(function (index, div) {
// break apart the comma-separated coordinates in the data-location attribute
var coords = $(div).data('location').split(',');
// add this location to the beaches array (with z-index 0)
beaches.push([$(div).text(), coords[0], coords[1], 0]);
});
某些应用程序可能会将坐标编码为经度,纬度。如果是这种情况,您需要交换coords
的位置,即:beaches.push([$(div).text(), coords[1], coords[0], 0]);
。
请记住,数组非常特定于您所指的示例(实际上是setMarkers()
函数)。