【 D3.js 入门系列 --- 2 】 如何使用数据和选择元素

接着上一讲的内容,这次讨论如何选择元素和使用数据。
    现在页面中有三行文字,代码为:

[html] view plain copy

  1. <p>Hello World 1</p>
  2. <p>Hello World 2</p>
  3. <p>Hello World 3</p>

定义一个集合set,里面有三个元素:

[html] view plain copy

  1. var set = ["I like dog","I like cat","I like snake"];

要用这三个字符串给分别给上面的三个<p>赋值,代码如下:

[html] view plain copy

  1. var sp = d3.select("body").selectAll("p");   //选择元素
  2. sp.data(set)             //使用数据集合
  3. .text(function(d,i){
  4. return d;
  5. });

上面第一行表示的是选择body里的所有p,再将这个集合赋值给一个变量p。第二行是表明要使用数据集合set,第三行表示要改变p里的文本内容。注意到后面有一个函数function(d,i),这是为了分别使用数据集合set里的元素。

如果不适用数据集合set,想要将所有文本都变为相同的字符串(如都变成China),只需:

[html] view plain copy

  1. sp.text("China");

即可。如果要使用集合分别赋值,要使用函数function(d,i),这个函数的第一个参数的意思是datum(数据),第二个参数的意思是index(索引),要注意,当使用数据函数data指定了数据后,数据集合set和你选择的p集合是一一对应的(如果set和p的数量正好一致的情况,不一样的情况以后再讨论)。函数里面只有一个语句 return d; , 表示直接返回数据,意思是对于每一个索引i,都直接返回数据d。 d3.js会自动按先后顺序为各个p赋值的。

结果如下图:

如果我们想只选择其中一个元素进行操作,假设只想操作Hello World 3,怎么办呢?

有两种方法:

一、为第三个p赋予一个id,即

[html] view plain copy

  1. <p id="p3">Hello World 3</p>

再选择

[html] view plain copy

  1. var sp = d3.select("body").select("#p3");   //选择元素

再进行操作即可。

二、在function(d,i)里操作,例如

[html] view plain copy

  1. sp.text(function(d,i){
  2. if(i==2){
  3. ....
  4. }
  5. });

来自:博客首页为: http://www.ourd3js.com/  ,csdn博客首页为:http://blog.csdn.net/lzhlzz/。转载请注明出处,谢谢。

时间: 2024-10-10 08:05:38

【 D3.js 入门系列 --- 2 】 如何使用数据和选择元素的相关文章

【 D3.js 入门系列 — 2 】 绑定数据和选择元素

1. 如何绑定数据 D3 有一个很独特的功能:能将数据绑定到 DOM 上,也就是绑定到文档上.这么说可能不好理解,例如网页中有段落元素<p>,我们可以将整数 5 与 <p>绑定到一起. D3 中是通过 data() 和 datum() 函数来绑定数据的,最常用的是 data(). 现有如下 HTML 代码: <p>Hello World 1</p> <p>Hello World 2</p> <p>Hello World 3

【 D3.js 入门系列 --- 2.1 】 关于怎样选择,插入,删除元素

本人的个人博客首页为: http://www.ourd3js.com/  ,csdn博客首页为:http://blog.csdn.net/lzhlzz/. 转载请注明出处,谢谢. 在D3.js中,选择元素的函数有两个:select 和 selectAll . 先说明一下它们的差别: select 是选择所有指定元素的第一个 selectAll 是选择指定元素的所有(以用于后面同一时候操作) 来看一个详细的样例,现有例如以下代码: <html> <head> <meta cha

【 D3.js 入门系列 --- 2.1 】 关于如何选择,插入,删除元素

在D3.js中,选择元素的函数有两个:select 和 selectAll . 先说明一下它们的区别: select 是选择所有指定元素的第一个 selectAll 是选择指定元素的全部(以用于后面同时操作) 来看一个具体的例子,现有如下代码: [html] view plain copy <html> <head> <meta charset="utf-8"> <title>select,append,exit</title>

【 D3.js 入门系列 --- 9.6 】 打包图的制作

本人的个人博客为:www.ourd3js.com csdn博客为:blog.csdn.net/lzhlzz 转载请注明出处,谢谢. 打包图( Pack ),用于包含与被包含的关系,也表示各个对象的权重,通常用一圆套一圆来表示前者,用圆的大小来表示后者. 先看本节所使用的数据:  city2.json 这是各城市所属关系的数据.我们现在要用 D3 的 layout 来转换数据,使其容易进行可视化处理. var pack = d3.layout.pack() .size([ width, heigh

【 D3.js 入门系列 --- 7 】 理解 update, enter, exit 的使用

本人的个人博客为: www.ourd3js.com csdn博客为: blog.csdn.net/lzhlzz 转载请注明出处,谢谢. 在前面几节中反复出现了如下代码: svg.selectAll("rect") .data(dataset) .enter() .append("rect") 当所选择的 rect 数量比绑定的数据 dataset 的数量少的时候,通常会用到以上代码,这一节就详细说说当被选择元素和数据数量不一致时该如何处理. 这一节将涉及到三个函数.

【 D3.js 入门系列 --- 10 】 地图的绘制

本人的个人博客为:www.ourd3js.com csdn博客为:blog.csdn.net/lzhlzz 转载请注明出处,谢谢. 地图的制作在 D3 中可以说是最重要的一环.因为在进行数据可视化时,很多情况都会和地图联系在一起,如中国各省的人口多少,GDP多少等,都可以和地图联系在一起. D3 中制作地图所需要的文件问 JSON 文件.JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.关于 JSON 的语法格式,可以在: http://www.w3s

【 D3.js 入门系列 — 0 】 简介和安装

[ D3.js 入门系列 — 0 ] 简介和安装 发表于2014/06/12 近年来,可视化越来越流行,许多报刊杂志.门户网站.新闻.媒体都大量使用可视化技术,使得复杂的数据和文字变得十分容易理解,有一句谚语“一张图片价值于一千个字”,的确是名副其实.各种数据可视化工具也如井喷式地发展,D3 正是其中的佼佼者. 1. D3 是什么 D3 的全称是(Data-Driven Documents),顾名思义可以知道是一个被数据驱动的文档.听名字有点抽象,说简单一点,其实就是一个 JavaScript

【 D3.js 入门系列 --- 9.5 】 树状图的制作

这一节学习树状图的制作.树状图的制作和集群图完全相同,经过这两种 layout 转换后的数据也很相似. 本人的个人博客为: www.ourd3js.com csdn博客为: blog.csdn.net/lzhlzz 转载请注明出处,谢谢. 树状图( Tree )通常用于表示层级.上下级.包含与被包含关系.树状图的制作和 9.4节集群图的制作 的代码几乎完全一样.不错,你没看错,几乎完全一样.那么为什么要把这两种图分开,它们有什么不同呢?先来看看对于同一组数据,它们的结果有什么不同.数据为: {

【 D3.js 入门系列 --- 9.3 】 弦图的制作

本人的个人博客为: www.ourd3js.com csdn博客为: blog.csdn.net/lzhlzz 转载请注明出处,谢谢. 弦图( Chord ),主要用于表示两个节点之间的联系.如下图: 两点之间的连线表示,谁和谁具有联系: 线的粗细表示权重: 上面的介绍源于: http://circos.ca/guide/tables/  ,我就不详细介绍了,还是很好理解的. 那么在 D3 中怎么用 layout 转换出弦图所需要的数据,并作图呢?请耐心往下看. 1. 首先给出数据 var ci

【 D3.js 入门系列 --- 9 】 常见可视化图形

本人的个人博客为: www.ourd3js.com csdn博客为: blog.csdn.net/lzhlzz 转载请注明出处,谢谢. Layout ,直译为"布局,安排".但在 D3 中不是这个意思. D3 中有很多 Layout 函数,它们不是为了在画面中布局什么,在 D3 中是对输入的数据进行转换,转换成比较容易进行可视化的数据.实际进行可视化时,需要其他的代码.我们可以简单地把 Layout 理解为"制作常见图形的函数",比如饼状图等等. D3 中一共提供了