我想将数据从div id
传递到javascript
highcharts
函数。我正在通过查看HTML5 Custom Data Attributes
然而,某些事情肯定是错的,因为当我尝试使用val1,val2等数据系列中的变量而不是数字时,不会绘制任何内容。当我将其更改回任何数字以进行测试时,它可以正常工作。任何人都可以解释原因吗?
(我在这里留下了一个val1,但系列中的其他3个留作数字)
JAVASCRIPT FUNCTION
<script>
$(function () {
var piedata = document.getElementById('containerpie');
var val1 = piedata.getAttribute('data-param1');
var val2 = piedata.getAttribute('data-param2');
var val3 = piedata.getAttribute('data-param3');
var val4 = piedata.getAttribute('data-param4');
$('#containerpie').highcharts({
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false
},
title:{
text: 'Quality of teaching'
},
credits: {
enabled: false
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
color: '#000000',
connectorColor: '#000000',
format: '<b>{point.name}</b>: {point.percentage:.1f} %'
}
}
},
series: [{
type: 'pie',
name: 'Judgement',
data: [
['1', val1],
['2', 24],
{
name: '3',
y: 8,
sliced: true,
selected: true
},
['4', 3]
]
}]
});
});
</script>
DIV ID部分
<div id="containerpie" data-param1="10" data-param2="20" data-param3="30" data-param4="30" style="min-width: 400px; height: 400px; margin: 0 auto"></div>
答案 0 :(得分:1)
首先,如果您使用的是jQuery,为什么不使用$(“#containerpie”)而不是getElementById?您还可以使用$(“#containerpie”)。data(“param1”)获取值。
您确定要分配var1,var2等吗?您可以在分配后进行检查以发出警报。另外,尝试将值解析为int(var val1 = piedata.getAttribute('data-param1');
试试这个:
$(function () {
var $piedata = $("#containerpie");
var val1 = parseInt($piedata.data('param1'));
var val2 = parseInt($piedata.data('param2'));
var val3 = parseInt($piedata.data('param3'));
var val4 = parseInt($piedata.data('param4'));
alert("Val1: " + val1 + " Val2: " + val2 + " Val3: " + val3 + " Val4: " + val4 );
$piedata.highcharts({
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false
},
title:{
text: 'Quality of teaching'
},
credits: {
enabled: false
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
color: '#000000',
connectorColor: '#000000',
format: '<b>{point.name}</b>: {point.percentage:.1f} %'
}
}
},
series: [{
type: 'pie',
name: 'Judgement',
data: [
['1', val1],
['2', 24],
{
name: '3',
y: 8,
sliced: true,
selected: true
},
['4', 3]
]
}]
});
});
<强>更新强>
我运行了您的代码并且工作正常,请参阅:http://jsfiddle.net/7ae7t/