表格和echart二级联动,并通过点击echart高亮图标单元格
html 部分
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
.bgc {
background: #08a9f2;
}
tr,td {
cursor: default;
}
.lh{
background: red;
color:#fff;
}
</style>
</head>
<body> <table width=100% border="1px" cellspacing="0px">
<thead>
<th>名称</th>
<th chartType=bar>温度(bar)</th>
<th chartType=bar>高度(bar)</th>
<th chartType=line>销量(line)</th>
<th chartType=bar>进口(bar)</th>
<th chartType=line>收入(line)</th>
</thead>
<tbody>
<tr>
<td>一月</td>
<td>234</td>
<td>345</td>
<td>123</td>
<td>234</td>
<td>444</td>
</tr>
<tr>
<td>二月</td>
<td>123</td>
<td>234</td>
<td>345</td>
<td>347</td>
<td>285</td>
</tr>
<tr>
<td>三月</td>
<td>345</td>
<td>654</td>
<td>234</td>
<td>654</td>
<td>523</td>
</tr>
<tr>
<td>四月</td>
<td>864</td>
<td>234</td>
<td>647</td>
<td>347</td>
<td>237</td>
</tr>
<tr>
<td>五月</td>
<td>435</td>
<td>737</td>
<td>348</td>
<td>964</td>
<td>285</td>
</tr>
</tbody>
</table>
<!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
<div id="main1" style="width: 65%;height:400px;margin: 30px auto"></div>
<!--<div id="main2" style="width: 60%;height:400px;"></div>-->
</body>
</html>
js 部分
<!-- 引入Jq -->
<script src="lib/jQuery/jquery-3.1.1.min.js"></script>
<!-- 引入 echarts -->
<script src="echarts.min.js"></script>
<script>
// 找到tbody下的tr并遍历
$('tbody tr').each(function () {
// 点击当前这个tr
$(this).click(function () {
// 当前这行高亮,并去掉同级其他兄弟元素的高亮
$(this).addClass('bgc').siblings().removeClass('bgc');
// 当前这行的同级元素的子元素去除高亮(单元格的)
$(this).siblings().children().removeClass('lh');
// 创建4个数组,动态添加到echart里面的
var data1 = [], title1 = [], chartType = [], namedata = [];
// 获得td 和 th
var td = $(this).find("td"), th = $('th');
// 遍历th
td.each(function (i) {
// 第一个 0索引的不要 其他的添加上去
if (i != 0)
data1.push($(this).html());
else
title1.push($(this).html());
})
// 同上
th.each(function (i) {
if (i != 0)
namedata.push($(this).html());
chartType.push($(this).attr("chartType"));
})
// 根据上面的参数动态获取图
var myChart = echarts.init(document.getElementById('main1'));
var option = {
xAxis: {
data: namedata,
// axisTick:false // X轴 向下的线
},
yAxis: {
name: '最高时期',
},
series: [
{
name: title1 + '柱状图',
type: 'bar',
barWidth: '30%', // 柱子宽度
itemStyle: {
normal: {color: '#08a9f2',} // 柱子颜色
},
data: data1,
markPoint : {
clickable:true,
data : [
{type : 'max', name: '最大值'},
{type : 'min', name: '最小值'}
]
}
},
{
name: title1 + '折线图',
type: 'line',
itemStyle: {
normal: {color: '#72b201'} // 折线颜色
},
data: data1
}
]
}
myChart.setOption(option);
myChart.on('click', function (params) {
// 点击到了 markPoint 上
if (params.componentType === 'markPoint')
return false;
// 通过索引高亮当前点击
$(td).eq(namedata.indexOf(params.name) + 1 ).addClass('lh').siblings().removeClass('lh');
// 通过查询高亮当前点击
/*
*
*
*
$(td).each(function(i){
if(params.data == $(this).text())
$(this).addClass('lh')
else
$(this).removeClass('lh')
})
*
*
*
*/
});
})
})
</script>
表格和echart二级联动,并通过点击echart高亮图标单元格的更多相关文章
- Qt实现表格控件-支持多级列表头、多级行表头、单元格合并、字体设置等
目录 一.概述 二.效果展示 三.定制表头 1.重写数据源 2.重写QHeaderView 四.设置属性 五.相关文章 原文链接:Qt实现表格控件-支持多级列表头.多级行表头.单元格合并.字体设置等 ...
- Qt高仿Excel表格组件-支持冻结列、冻结行、内容自适应和合并单元格
目录 一.概述 二.效果展示 三.实现思路 1.冻结行.冻结列 2.行高自适应 3.蚂蚁线 四.测试代码 1.添加表格数据 2.设置冻结行.列 3.行高.列宽 4.单元格背景色 5.单元格文字 6.其 ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表格:将悬停的颜色应用在行或者单元格上
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- iOS开发之"省市"二级联动的数据组织(PHP版)以及PickerView的实现与封装
之所以要发表这篇博客,还源于最近的开发工作所实现的一个小的Demo, 当然这个Demo不会涉及工作中App的一些内容,下方要实现的Demo是通用的.因为项目需求的迭代,要求在银行卡绑定中添加支行所在的 ...
- Extjs二级联动combo省城市
Extjs二级联动 Extjs combox根据省查询城市 实现效果如上图所示, store层代码: Ext.define("ExtApp.store.TeacherProvince&quo ...
- JQuery的使用案例(二级联动,隔行换色,轮播图,广告插入)
JQuery的使用案例 (一)利用JQuery完成省市二级联动 第一步:确定事件(change事件),在绑定的函数里面获取用户选择的省份 第二步:创建二维数组来存储省份和城市 第三步:遍历二维数组中的 ...
- asp.net 使用DroDownList来实现二级联动
今天做新闻发布系统的时候,用到了二级联动,我把使用方法记录下来,以便日后查阅以及帮助新手朋友们.下面是效果图: 下面来讲解一下实现的方法: 1.在.aspx页面中,拖入两个DroDownList控件. ...
- Select标签下拉列表二级联动级联
首先从服务器端,绑定下拉列表,二级下拉的text命名按照一定规则加上一级下拉的ID. var options=new Array(); $(document).ready(function(){ // ...
- 通过Ajax异步提交的方法实现从数据库获取省份和城市信息实现二级联动(xml方法)
之前有写过是从JavaScript数组里获取省市信息来实现二级联动,但是似乎有很多需求是要从数据库里获取信息,所以就需要根据异步提交,局部刷新的思想来实现来提高用户交互问题 第一种方法是xml方法 1 ...
随机推荐
- Java高级特性之反射
老规矩我们还是先提出几个问题,一门技术必然要能解决一定的问题,才有去学习掌握它的价值 一. 什么是反射? 二.反射能做什么? 一. 什么是反射? 用在Java身上指的是我们可以于运行时加载.探知.使用 ...
- easyUI linkbutton组件
easyUI linkbutton组件: <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
- css块级标签,行内标签,行内块标签的转换(2)
css块级标签,行内标签,行内块标签的转换 版权声明 本文原创作者:雨点的名字 作者博客地址:https://home.cnblogs.com/u/qdhxhz/ 在基础1中,我详细讲 ...
- svn git协同管理
项目开发过程中总有一些奇奇怪怪的需求出现. 我们的项目管理是使用SVN的,用SVN是历史原因,无法整个项目向Git切换.由于我需要管理SVN,做一些代码合并工作.每次合并都会遇到SVN代码需要对比查看 ...
- JS日期时间加减实现
首先,上代码 var diffDate = function(date, diff) { return new Date( Date.UTC( date.getUTCFullYear(), date. ...
- CentOS 7 网卡命名修改为ethx格式
Linux 操作系统的网卡设备的传统命名方式是 eth0.eth1.eth2等,而 CentOS7 提供了不同的命名规则,默认是基于固件.拓扑.位置信息来分配.这样做的优点是命名全自动的.可预知的,缺 ...
- java gui三个组件的使用
链接: http://blog.sina.com.cn/s/blog_614f347b0101egah.html 代码: import java.awt.*; import java.awt.even ...
- Dirty Flag 模式及其应用
之前在开发中就发现"dirty"是一种不错的解决方案:可以用来延缓计算或者避免不必要的计算.后来在想,这应该也算一种设计模式吧,于是搜索"Dirty设计模式", ...
- python中的select模块
介绍: Python中的select模块专注于I/O多路复用,提供了select poll epoll三个方法(其中后两个在Linux中可用,windows仅支持select),另外也提供了kqu ...
- 简述public private protected internal修饰符的访问权限
public 关键字是类型和类型成员的访问修饰符.公共访问是允许的最高访问级别.对访问公共成员没有限制. protected 关键字是一个成员访问修饰符.受保护成员在它的类中可访问并且可由派生类访问. ...