D3.JS 基于javascript的图表展示库<四>----基本元素选择与Table
来源:互联网 发布:淘宝电子积木 编辑:程序博客网 时间:2024/05/20 10:10
代码 在 这里 http://download.csdn.net/detail/a6383277/5205910
看代码:
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Data</title><script type="text/javascript" src="lib/d3.v3.js"></script><script type="text/javascript" src="tab.js"></script></head><body><table> <thead> <tr><td> A</td><td> B</td><td> C</td><td> D</td></tr> </thead> <tbody> <tr><td> 00</td><td> 01</td><td> 02</td><td> 03</td></tr> <tr><td> 04</td><td> 05</td><td> 06</td><td> 07</td></tr> <tr><td> 08</td><td> 09</td><td> 10</td><td> 11</td></tr> <tr><td> 12</td><td> 13</td><td> 14</td><td> 15</td></tr> </tbody></table><div><input type="button" value="selectAllTd()"onclick="selectAllTd()"/><input type="button" value="selectAllTd()"onclick="selectAllTdByTr()"/></div></body></html>
function selectAllTd(){var tds = d3.selectAll("tbody td").style("color",function(d,i){ //选择tbody下的所有tdconsole.log("d is "+ d+" and i is " + i); //打印语句,因为没有绑定数据, 可以看到,d 输出的是 undefined,i则是下标,0,1,2,3 .....15return i%3 !== 0 ? null : "red"; //把所有 下标(下标从0开始) 为3倍数的td设为红色字体});}function selectAllTdByTr(){//先选择tr,在选择td//实际形成的数据结构就相当于/*[[td,td,td,td],[td,td,td,td],[td,td,td,td],[td,td,td,td]]*/var tds = d3.selectAll("tbody tr").attr("id",function(d,i){ //为了便于清楚 绑定的方式,给每个tr赋值return "tdId"+i;}).selectAll("td");tds.style("color",function(d,i){ //这里就是分别遍历四个[td,td,td,td]中的td,那么下标应该为 0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3console.log(i);//打印下标return i%3 !== 0 ? null : "red"; //i%3是为了证明 下标不是0~15 而是0~3. 如果是0~15那么 表格上显示的04就不是红色。因为04的下标是4。也可以根据控制台打印输出可以看出});}
第二个demo: index02.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Data</title><script type="text/javascript" src="lib/d3.v3.js"></script><script type="text/javascript" src="tab02.js"></script></head><body><table> <thead> <tr><td> A</td><td> B</td><td> C</td><td> D</td></tr> </thead> <tbody> </tbody></table><p>现在table中除了表头什么都没有。</p><input type="button" value="Click Me" onclick="btnClick()"/><input type="button" value="绑定json数据" onclick="btnClickObj()"/><table> <thead> <tr><td> 名字</td><td> 性别</td><td> 年龄</td></tr> </thead> <tbody id="obj"> </tbody></table></body></html>
tab02.js
//接着index.html和tab.js来看。//修改一下方法,让它绑定一些数据//点击一下index02.html中的按钮function testSelectAllTdByGroup(){var matrix = [ [ "00A", "01A", "02A", "03A"], [ 4, 5, 6, 7], [ 8, 9, 10, 11], [12, 13, 14, 15], ]; //定义二维数组 //var trs = d3.selectAll("tbody tr").data(matrix).enter().append("tr"); //这样写是错误的!! // 因为d3选择器的默认父节点是doucment的根节点<html>,不能直接在根节点添加tr元素在根节点。所以在加入节点前先选择一个父节点。就像下面一样 var trs = d3.select("tbody").selectAll("tr").data(matrix); //先选择一个父节点 tbody trs = trs.enter().append("tr");//插入元素 var tds = trs.selectAll("td") .data(function(d,i){ return d; //依次把matrix[i]给 每个tr里面的td }); tds = tds.enter().append("td"); tds.html(function(d){return d});}//一般情况下 我们不会使二维数组这种理想的数据,通常绑定的是一个object对象的json格式。如[{name:"A",sex:"girl",age:15},{name:"B",sex:"boy",age:16},...]//当然 其实也不会使用d3来处理一般的表格。这里只是写个demo而已var objs =[{name:"A",sex:"girl",age:15},{name:"B",sex:"boy",age:16}];//这种对象数组和二维数组其实和相似,变换一下就可以了function bindObj(){var trs = d3.select("#obj").selectAll("tr").data(objs); //先选择一个父节点 ,选择所有的tr 绑定数据trs.enter().append("tr");//这个就是转换下数据的格式了var tds = trs.selectAll("td").data(function(d,i){ //这里实际上就是把obj分别分配给tr,一个tr显示一个objconsole.log("第"+i+"对象是:"+JSON.stringify(d)); //可以查看打印语句var arr = []; //定义一个数组装属性for(index in d){arr.push(d[index]);//把每个属性的值放入数组中}return arr;});tds.enter().append("td").html(String); //添加td 并展示内容}//定义页面上按钮的响应事件function btnClick(){testSelectAllTdByGroup();}function btnClickObj(){bindObj();}
- D3.JS 基于javascript的图表展示库<四>----基本元素选择与Table
- D3.JS 基于javascript的图表展示库<二>----基本元素操作
- D3.JS 基于javascript的图表展示库<三>----基本元素绑定
- D3.JS 基于javascript的图表展示库<七>
- D3.JS 基于javascript的图表展示库<五>-基本柱状图1
- D3.JS 基于javascript的图表展示库<六>-基本柱状图2
- [d3.js] D3.JS 基于javascript的图表展示库<一>----简单介绍
- 一些基于 D3.js 的图表库
- 分享一个基于D3.js的互动可重用图表javascript类库 - NVD3.js
- d3.js中的选择元素
- d3.js选择、插入、删除元素
- d3.js-选择、插入、删除元素
- 基于 HTML5 的 JavaScript 图表库——chart.js
- D3 JS 库 - 用来展示数据分析的结果
- d3选择集合的操作方法(四):sort与order
- d3.js-做一个简单的图表
- d3.js——选择集与数据的绑定
- d3.js-选择集与数据
- QQ邮箱网盘:可直接调用微云和Dropbox
- MySQL数据库集群实现负载均衡的安装配置详解
- Activity的生命周期
- 1002小明系列故事——师兄帮帮忙
- windows下cmake配合VS和mingw
- D3.JS 基于javascript的图表展示库<四>----基本元素选择与Table
- 关于source /etc/profile命令
- Ubuntu下Nginx的安装及WEB服务配置
- Javascript继承机制的设计思想
- USB-HDD,USB-ZIP,USB-HDD+,USB-ZIP+之间的关系
- 奇怪的排序
- JDBC的表与对象
- Javascript 面向对象编程(一):封装
- 类的继承