- D3.js 教程
- D3.js - 主页
- D3.js - 简介
- D3.js - 安装
- D3.js - 概念
- D3.js - 选择
- D3.js - 数据连接
- D3.js - SVG 简介
- D3.js - SVG 转换
- D3.js - 过渡
- D3.js - 动画
- D3.js - 绘制图表
- D3.js - 图表
- D3.js - 地理
- D3.js - 数组 API
- D3.js - 集合 API
- D3.js - 选择 API
- D3.js - 路径 API
- D3.js - 秤 API
- D3.js - 轴 API
- D3.js - 形状 API
- D3.js - 颜色 API
- D3.js - 转换 API
- D3.js - 拖动 API
- D3.js - 缩放 API
- D3.js - 请求 API
- 分隔符分隔值 API
- D3.js - 计时器 API
- D3.js - 工作示例
- D3.js 有用资源
- D3.js - 快速指南
- D3.js - 有用的资源
- D3.js - 讨论
D3.js - 选择 API
选择是文档对象模型 (DOM) 的强大数据驱动转换。它用于设置属性、样式、属性、HTML 或文本内容等等。本章详细介绍了选择 API。
配置API
您可以使用下面的脚本直接配置 API。
<script src = "https://d3js.org/d3-selection.v1.min.js"></script> <script> </script>
选择 API 方法
以下是选择 API 中最重要的方法。
- d3.selection()
- d3.select(选择器)
- d3.selectAll(选择器)
- 选择.selectAll(选择器)
- 选择.过滤器(过滤器)
- 选择.合并(其他)
- d3.matcher(选择器)
- d3.creator(名称)
- 选择.each(函数)
- Selection.call(函数[, 参数...])
- d3.local()
- local.set(节点, 值)
- 本地.get(节点)
- 本地.删除(节点)
现在让我们详细讨论其中的每一个。
d3.selection()
该方法用于选择根元素。此函数还可用于测试选择或扩展选择 d3js。
d3.select(选择器)
此方法用于选择与指定选择器字符串匹配的第一个元素。
示例- 让我们考虑以下示例。
var body = d3.select("body");
如果选择器不是字符串,则它选择指定的节点,其定义如下。
d3.select("p").style("color", "red");
d3.selectAll(选择器)
此方法选择与指定选择器字符串匹配的所有元素。
示例- 让我们考虑以下示例。
var body = d3.selectAll("body");
如果选择器不是字符串,则它选择指定的节点数组,其定义如下。
d3.selectAll("body").style("color", "red");
选择.selectAll(选择器)
该方法用于选择一个元素。它选择与指定选择器字符串匹配的后代元素。返回的选择中的元素按该选择中相应的父节点进行分组。如果没有元素与当前元素的指定选择器匹配,或者选择器为 null,则当前索引处的组将为空。
示例- 让我们考虑以下示例。
var b = d3.selectAll("p").selectAll("b");
选择.过滤器(过滤器)
此方法用于过滤选择,返回一个新选择,其中仅包含指定过滤器为 true 的元素。
示例- 让我们考虑以下示例。
var even = d3.selectAll("tr").filter(":nth-child(odd)");
在这里,过滤表行的选择仅返回奇数。
选择.合并(其他)
此方法用于返回与指定的其他选择合并的新选择。
示例- 让我们考虑以下示例。
var rect = svg.selectAll("rect").data(data); rect.enter().append("rect").merge(rect);
d3.matcher(选择器)
该方法用于分配指定的选择器。它返回一个函数,该函数返回 true。
示例- 让我们考虑以下示例。
var p = selection.filter(d3.matcher("p"));
d3.creator(名称)
此方法用于分配指定的元素名称。它返回一个函数,该函数创建给定名称的元素,假设这是父元素。
示例- 让我们考虑以下示例。
selection.append(d3.creator("p"));
选择.each(函数)
此方法用于为每个选定元素调用指定函数,按照当前数据 (d)、当前索引 (i) 和当前组(节点)传递的顺序,并将其作为当前 DOM 元素 (nodes[i ])。下面对此进行解释。
parent.each(function(p, j) { d3.select(this) .selectAll(".child") .text(function(d, i) { return "child " + d.name + " of " + p.name; }); });
Selection.call(函数[, 参数...])
它用于仅调用一次指定的函数。语法如下所示。
function name(selection, first, last) { selection.attr("first-name", first).attr("last-name", last); }
可以如下所示指定该方法。
d3.selectAll("p").call(name, "Adam", "David");
d3.local()
D3 local 允许您定义独立于数据的本地状态。
示例- 让我们考虑以下示例。
var data = d3.local();
与 var 不同,每个 local 的值也由 DOM 限定范围。
local.set(节点, 值)
此方法将指定节点上的 this local 的值设置为该值。
示例- 让我们考虑以下示例。
selection.each(function(d) { data.set(this, d.value); }); local.get(node)
此方法返回指定节点上的本地值。如果节点未定义此本地节点,则它将返回定义它的最近祖先的值。
本地.删除(节点)
此方法从指定节点删除此本地值。如果节点已定义,则返回 true,否则返回 false。