根据所选选项生成图表
Generate chart according to selected options
本文关键字:选项 更新时间:2023-09-26
我有一个带有选择框的html页面。我将其编码在 Jquery 文件中,以便当选择的选项是"足球"时,它将比较 Jquery 中的 json 数据并生成图表。但是,如果我选择"电影",它将显示错误。
但是当选择发生变化时,我无法做出回应。
这是我的 HTML 代码:
<title>Pie chart</title>
<style type="text/css">
.style1
{
text-align: center;
}
</style>
</head>
<body>
<p class="style1">
Select your category :
<select id="selection" name="D1" onclick="return selection_onclick()">
<option value ="football" selected =selected>Football Team</option>
<option value ="Movie">Movie</option>
</select></p>
<div id="container" style="min-width: 400px; height: 400px; margin: 0 auto">
<br />
</div>
</body>
这是我的Jquery文件,其中嵌入了json:
$(function () {
var json = {
"data": [
{
"cid": "football",
"id": "/en/chelsea_fc",
"topic": "Chelsea F.C.",
"audience": [
{
"userid": "100003914111287",
"information": [
{
"category": "Athlete",
"source": "Didier Drogba"
},
{
"category": "Athlete",
"source": "Frank Lampard"
},
{
"category": "Professional sports team",
"source": "Chelsea Football Club"
},
{
"category": "favorite_teams",
"source": "Chelsea Football Club"
}
]
},
{
"userid": "100003914111287",
"information": [
{
"category": "Athlete",
"source": "Didier Drogba"
},
{
"category": "Athlete",
"source": "Frank Lampard"
},
{
"category": "Professional sports team",
"source": "Chelsea Football Club"
},
{
"category": "favorite_teams",
"source": "Chelsea Football Club"
}
]
}
],
"type": "/soccer/football_team"
},
{
"id": "/en/manchester_united_fc",
"topic": "Manchester United F.C.",
"audience": [
{
"information": [
{
"category": "Athlete",
"source": "Ryan Giggs"
},
{
"category": "Professional sports team",
"source": "Manchester United"
},
{
"category": "favorite_teams",
"source": "Manchester United"
}
],
"userid": "100003921730958"
}
],
"type": "/soccer/football_team"
}
]
};
接下来这是我生成图表的方式:
$("#selection").on('change', function(){
// var e = document.getElementById("selection");
var id =$(this).val();
if(id = json.data[0].cid) {
console.log(id)
$.each(json.data, function (i, v) {
pts.push([v.topic, v.audience.length]);
});
}
else
alert("Wrong data");
//Radialize the colors
Highcharts.getOptions().colors = $.map(Highcharts.getOptions().colors, function (color) {
return {
radialGradient: { cx: 0.5, cy: 0.3, r: 0.7 },
stops: [
[0, color],
[1, Highcharts.Color(color).brighten(-0.3).get('rgb')] // darken
]
};
});
var chart;
$(document).ready(function () {
/*var e = document.getElementById("selection");
var id = e.options[e.selectedIndex].value;
console.log(id);
if (id = json.data[0].cid) {
$.each(json.data, function (i, v) {
pts.push([v.topic, v.audience.length]);*/
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false
},
title: {
text: 'Facebook like'
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage}%</b>',
percentageDecimals: 0
}
,
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
point: {
events: {
click: function (event) {
//var personame =" ";
var id = "10150616324193820";
for (var i = 0; i < jsonFB.user1.length; i++) {
for (var k = 0; k < json.data.length; k++) {
for (var j = 0; j < json.data[k].audience.length; j++) {
if (jsonFB.user1[i].id = json.data[k].audience[j].userid) {
var personname = jsonFB.user1[i].name;
var id = jsonFB.user1[i].id;
}
else {
alert("Error!");
}
}
}
alert("Person who like " + this.name + " are " + personname);
var ans = confirm("Do you want to view this person profile?");
if (ans)
window.location = "http://www.facebook.com/people/@/" + id;
}
}
}
},
showInLegend: true,
dataLabels: {
enabled: true,
color: '#000000',
connectorColor: '#000000',
formatter: function () {
return '<b>' + this.point.name + '</b>: ' + Math.round(this.percentage) + '%';
}
}
}
},
series: [{
type: 'pie',
name: 'Likes',
data: pts
}]
});
});
});
onclick不是你感兴趣的事件。您必须改用 onchange:
<select id="selection" name="D1" onchange="selection_onclick()">
<option value ="football" selected =selected>Football Team</option>
<option value ="Movie">Movie</option>
</select></p>
希望对您有所帮助,
相关文章:
- 我的单元测试选项是什么
- 如何更改bigquery API中的计费层选项
- 使用Javascript获取所选选项ID
- Selectize.js:如何对整数值的选项进行排序
- 通过js在新选项卡中有条件地打开url
- 按照选项卡索引的顺序循环一个jQuery选择
- 如何在使用selectBoxIt JQuery插件时检测选项更改
- 无法在Ionic select中预先选择最后一个选项
- 如何在选项卡上定义属性'的主窗口对象
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 使用此选项选择父类内部的类
- CKeditor:更改对话框中的默认选择选项
- JQuery覆盖不更改单选选项
- 活动选项卡's源代码-获取变量s值
- 绑定时将Parsley minlength消息作为选项传递时,未对其进行自定义
- 如何从选择框中的选项中获取属性值
- 如何在从多选下拉列表中选择选项值时动态生成文本框
- React Native通过Navigator将用户输入数据传递到选项卡栏IOS中的组件
- 如何从外部页面激活非默认引导选项卡
- Woocommerce产品选项有条件