D3 · 数据绑定 · data()
数据绑定
数据绑定(Data-Join)是D3处理数据集和数据的方法。
d3.select与d3.selectAll这两个方法返回的选择集是没有数据的,它相当于操作DOM。而要使得选择集拥有数据,要采用d3.data或者d3.datum方法。
两个方法都是D3的核心,希望能弄懂,尤其是d3.data
d3.datum 与 d3.data
| 方法 | 含义 |
|---|---|
d3.datum([val]) |
每个元素都绑定相同的value |
d3.data(val [,key]) |
每个元素绑定数组每一项val,key是健函数(指定绑定数组规则) |
本文主要针对d3.data(),做出讲解。其实弄懂了data(),datum()也不难理解
d3.data()
与Data-Join打交道的有三个单词:update enter exit
| 方法 | 含义 | 关系 ([]-数据,DOM-元素) | 处理方法 |
|---|---|---|---|
| update | 绑定数据的元素将被更新 | 已存在的元素,[] = DOM | 修改attr属性 |
| enter | 部分不存在的元素将可视化 | 元素过少,[]>DOM | 给选择集append()足够元素 |
| exit | 删除多余的元素 | 元素过多,[]<DOM | remove() 多余元素 |
See the Pen d3.data by 何大小成 (@hopkinson) on CodePen.
例子中,body里的p元素也就只有一个,但是数据dataArr有4个。得出:enter部分有3个多余的数据。处理方法就是添加元素(append),使其与多余数据对应。结果发现body元素里多了3个元素。
处理数据常用模板
此模板的作用是无论网页中的p元素是多余的还是不够的,结果都是一个p元素对应数组中的一项。
1 | // 1.数据 |