【D3.js 学习总结】3、D3选择器

简介: 用过kissy的都知道它的选择器有 `Node.one` 和 `Node.all` 两个,前一个是选择第一个结果,后一个是选择所有结果; D3的选择器跟kissy类似,只是名字换成了 `d3.select` 和 `d3.selectAll` ,应该比较好理解; 例如: 选中body标签 var body = d3.select('body'); 选中所有p标签

用过kissy的都知道它的选择器有 Node.oneNode.all 两个,前一个是选择第一个结果,后一个是选择所有结果;
D3的选择器跟kissy类似,只是名字换成了 d3.selectd3.selectAll ,应该比较好理解;

例如:

选中body标签

var body = d3.select('body');

选中所有p标签

var p = d3.selectAll('p');

不一样的地方在于转换为原生dom时,Kissy是 Node.all('body')[0] 而D3是 d3.selectAll('body')[0][0]

D3选择器还有以下这些方法帮助我们对节点或数据做一些操作

方法名 含义 示例
selection.append 创建并追加一个新元素 p.append('span')
selection.attr 取得或设置属性的值 p.attr('class','demo')
selection.call 为当前选择调用一个函数 p.call(function(d){d.text('demo')})
selection.classed 添加或移除CSS类 p.classed('demo',true)
selection.data 为一组元素分别取得或设置数据 p.data([1,2,3],function(d){return d;})
selection.datum 为单个元素取得或设置数据 p.datum(1)
selection.each 为每个选中的元素调用一个函数 p.data([1,2,3]).each(function(d,i){console.log(d)})
selection.empty 如果选择是空则返回true console.log(p.empty())
selection.enter 为缺失的元素返回占位符 p.enter()
selection.exit 返回不再需要的元素 p.exit()
selection.filter 基于数据过滤选择 p.data([1,2,3]).filter(function(d,i){return d%2 == 0})
selection.html 取得或设置innerHTML内容 p.html('1
2')
selection.insert 在已存在元素之前创建并插入一个元素 p.insert('span')
selection.interrupt 如果有过渡的话,立即中断当前的过渡 p.interrupt()
selection.node 返回选择中的第一个节点 p.node().innerHTML = 'demo'
selection.on 为交互添加或移除事件监听器 p.on('click',function(d){console.log(d)})
selection.order 重排列文档中的元素,以匹配选择 var div = d3.select("body").selectAll("div") .data(["a", "b", "f"]); div.enter().append("div") .text(String); var div = d3.select("body").selectAll("div") .data(["a", "b", "c", "d", "e", "f"], String); div.enter().append("div") .text(String); div.order();
selection.property 取得或设置行内属性 d3.select('input').property('checked')
selection.remove 从当前文档中移除当前元素 p.remove()
selection.select 为每个选中元素的在选择一个后代元素 p.select('span')
selection.selectAll 为每个选中元素的在选择多个后代元素 p.selectAll('span)
selection.size 返回选择中的元素数 p.size()
selection.sort 基于数据排列文档中的元素 p.data([1,3,2]).sort(function (a,b) {return a>b;})
selection.style 取得或设置样式属性 p.style('width','100px')
selection.text 取得或设置文本内容 p.text('demo')
selection.transition 在选中元素上开启过渡 p.transition()
目录
相关文章
|
2月前
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
27 0
|
2月前
|
消息中间件 Web App开发 JavaScript
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
72 0
|
8天前
|
JavaScript 前端开发 应用服务中间件
node.js之第一天学习
node.js之第一天学习
|
1月前
|
运维 JavaScript 前端开发
发现了一款宝藏学习项目,包含了Web全栈的知识体系,JS、Vue、React知识就靠它了!
发现了一款宝藏学习项目,包含了Web全栈的知识体系,JS、Vue、React知识就靠它了!
|
1月前
|
JavaScript
Vue.js学习详细课程系列--共32节(4 / 6)
Vue.js学习详细课程系列--共32节(4 / 6)
33 0
|
1月前
|
前端开发 搜索推荐 JavaScript
编程笔记 html5&css&js 001 学习编程从网页开始
编程笔记 html5&css&js 001 学习编程从网页开始
|
2月前
|
前端开发 JavaScript
从零开始学习前端开发:HTML、CSS、JavaScript入门指南
【2月更文挑战第1天】本文将带领读者从零开始学习前端开发,介绍HTML、CSS和JavaScript的基础知识与应用,帮助读者快速入门前端开发领域。
64 1
|
2月前
|
数据采集 机器学习/深度学习 JavaScript
画【Python折线图】的一百个学习报告(二、pyecharts引入js文件)
画【Python折线图】的一百个学习报告(二、pyecharts引入js文件)
51 0
|
2月前
|
JSON 前端开发 JavaScript
Webpack【Webpack图片处理、Webpack中proxy代理 、自动清理dist、Webpack优化、JavaScript中的代码检查】(三)-全面详解(学习总结---从入门到深化)
Webpack【Webpack图片处理、Webpack中proxy代理 、自动清理dist、Webpack优化、JavaScript中的代码检查】(三)-全面详解(学习总结---从入门到深化)
35 0
Webpack【Webpack图片处理、Webpack中proxy代理 、自动清理dist、Webpack优化、JavaScript中的代码检查】(三)-全面详解(学习总结---从入门到深化)
|
2月前
|
资源调度 JavaScript 关系型数据库
Node.js【文件系统模块、路径模块 、连接 MySQL、nodemon、操作 MySQL】(三)-全面详解(学习总结---从入门到深化)
Node.js【文件系统模块、路径模块 、连接 MySQL、nodemon、操作 MySQL】(三)-全面详解(学习总结---从入门到深化)
33 0