我需要将此数组传递给函数:
[
['ib-marker1', -24.9256,-43.8994, 0],
['ib-marker2', -22.9556,-43.8994, 0]
]
数组需要嵌入HTML中,所以我这样添加:
<div id="map" data-markers="[['ib-marker1', -24.9256,-43.8994, 0],['ib-marker2', -22.9556,-43.8994, 0]]">
然后我接受了这些信息并调用我的函数:
var markers = $(this).find("#map").data("markers"); init(markers);
这是Google地图功能。没有标记被识别。我收集它是因为我的markers变量包含一个字符串,而不是一个真正的数组。我无法弄清楚如何做到这一点。
作为测试,我尝试直接通过变量(不在数据属性中)传递数组,并且它工作正常:
var pins = [['ib-marker1', -24.9256,-43.8994, 0],['ib-marker2',
-22.9556,-43.8994, 0]];
有人可以帮帮我吗?谢谢!
答案 0 :(得分:1)
考虑到没人发布正确答案作为实际答案,我在这里发布dfsq和Ayyash的答案。这实际上就是诀窍:
var markers = eval($(this).find("#map").data("markers"));
答案 1 :(得分:0)
您必须使用有效 JSON(不是对象 - 文字),然后jQuery可以通过.data("markers")
正确解析数据。
有效JSON使用双引号括起字符串(不是单引号):
<div id="map" data-markers="[["ib-marker1",-24.9256,-43.8994,0],["ib-marker2",-22.9556,-43.8994,0]]"></div>
http://jsfiddle.net/cnG4b/(看看控制台)