我正在尝试创建一个代码片段,从数据库中获取位置、标记文本等谷歌地图对象,并将其添加到 html 数据属性中,以便我可以轻松地在 javascript 中使用它们
我无法让 js 将 json 理解为 json,而是将其视为字符串
jQuery('.map_canvazz').each(function(i,elem) {
latPos = jQuery(this).attr("data-lat");
longPos = jQuery(this).attr("data-long");
infoDisplay = jQuery(this).attr("data-info");
var objAddresses= jQuery(this).attr("data-params");
if(typeof objAddresses != 'undefined'){
console.log(typeof(objAddresses));
console.log(objAddresses);
//array of object is treated as string
// unable to convert array of objects as json
// todo :- loop through the object of array
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='map_canvazz' id='maper1' data-params='[{"lat":"-36.758435","long":"144.273174","mapTxt":"<div class=\"mapArea\"><div class=\"lineOneMap\">Beyond Medical Education Victorian Office<\/div><div class=\"lineTwoMap\">37 Rowan Street<br>Bendigo VIC 3550, Australia<br>+61 35441 9300<\/div><\/div>"},{"lat":"1111","long":"222","mapTxt":"test"}]'></div> </div>
最佳答案
属性值只能是字符串。如果您想将 JSON 字符串转换为 JavaScript 对象,则应通过 JSON.parse()
运行它。
关于javascript - html 5属性作为对象数组被视为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27889876/