select()和selectAll()之间有什么区别

use*_*809 12 javascript d3.js

select()和selectAll()有什么区别?

为什么第二个附加ap标签?

divSelection = d3.select('#div-vis').selectAll('p').data(['dummy']).enter().append('p');

divSelection = d3.select('#div-vis').select('p').data(['dummy']).enter().append('p');
Run Code Online (Sandbox Code Playgroud)

mbo*_*ock 16

嵌套选择:

嵌套选择具有另一个微妙但关键的副作用:它为每个组设置父节点.父节点是选择的隐藏属性,用于确定添加输入元素的位置.... select和selectAll之间有一个重要的区别:select保留现有的分组,而selectAll创建一个新的分组.因此调用select会保留原始选择的数据,索引甚至父节点!

当你说d3.select("#vis"),选择的父节点仍然是文档元素.然后selectAll("p"),当您说,您将父节点定义为先前选择的#vis元素,因为selectAll是一个嵌套运算符.这只发生在selectAll而不是select.