Javascript 动态加载JSON数据与JVectormap-uncought TypeError中的硬编码:无法读取属性';元素';未定义的
我正在使用JVectormap,并试图通过AJAX动态加载数据。 我的AJAX调用一个PHP脚本,该脚本返回一个resultstring。 示例响应:{“US”:“29.84”,“BE”:“24.52”,“FR”:“21.42”,“GB”:“15.66”} 当我使用console.log(dataset)时,我在控制台中看到了与上述示例完全正确的字符串,但数据没有加载到地理图表上,我得到了错误“Uncaught TypeError:无法读取undefined的属性'element'” 复制时,从控制台粘贴值,并在代码中添加一行 var数据集={“US”:“29.84”,“BE”:“24.52”,“FR”:“21.42”,“GB”:“15.66”}; 然后,图表被完美加载 因此,当我硬编码时,值都可以正常工作,但是当我使用动态返回的数据集时,它不工作,尽管它们是彼此的精确副本 我的Javascript代码没有硬编码值(这会导致空映射和控制台中的上述错误) 信息:这个函数RenderChart(dataset)是从另一个部分调用的,该部分在“dataset”中加载AJAX数据。因此,dataset包含带有国家代码和值的字符串,您也可以在console.log(dataset)中看到这一点 带有硬编码值的我的代码(此代码生成一个良好的图表)Javascript 动态加载JSON数据与JVectormap-uncought TypeError中的硬编码:无法读取属性';元素';未定义的,javascript,jquery,ajax,jvectormap,Javascript,Jquery,Ajax,Jvectormap,我正在使用JVectormap,并试图通过AJAX动态加载数据。 我的AJAX调用一个PHP脚本,该脚本返回一个resultstring。 示例响应:{“US”:“29.84”,“BE”:“24.52”,“FR”:“21.42”,“GB”:“15.66”} 当我使用console.log(dataset)时,我在控制台中看到了与上述示例完全正确的字符串,但数据没有加载到地理图表上,我得到了错误“Uncaught TypeError:无法读取undefined的属性'element'” 复制时,从
我自己解决了这个问题,但我想我应该在这里为其他可能有同样问题的人添加解决方案 尽管PHP代码返回一个json_encode()值,但它不起作用。 您必须在AJAX请求中明确定义数据类型:“json”
function RenderChart(dataset)
{
console.log(dataset);
$('#world-map').vectorMap({
map: 'world_mill',
backgroundColor: "#3C454D",
series: {
regions: [{
values: dataset,
scale: ['#25823b', '#fce853', '#e01402'],
normalizeFunction: 'polynomial'
}]
},
onRegionTipShow: function(e, el, code){
el.html(el.html()+' (Threat - '+dataset[code]+'%)');
}
});
}
function RenderChart(dataset)
{
console.log(dataset);
dataset = {"US":"29.84","BE":"24.52","FR":"21.42","GB":"15.66","DE":"2.81"};
$('#world-map').vectorMap({
map: 'world_mill',
backgroundColor: "#3C454D",
series: {
regions: [{
values: dataset,
scale: ['#25823b', '#fce853', '#e01402'],
normalizeFunction: 'polynomial'
}]
},
onRegionTipShow: function(e, el, code){
el.html(el.html()+' (Threat - '+dataset[code]+'%)');
}
});
}