选择弧/元素
Selecting arc/element
在sunburst中,如何让代码在生成所有弧之后选择根弧?
例如,在代码中:
var first_arc = ""
.json("../data/flare.json", function(json) {
var path = vis.data([json]).selectAll("path")
.data(partition.nodes)
.enter().append("path")
.attr("display", function(d) { return d.depth ? null : "none"; })
.attr("d", arc)
.attr("t_name", function(d) {return d.name})
.style("fill-rule", "evenodd")
.on("click", function(d)...
它将作为"d"传递给点击中间弧线的"函数"。
(其数据位于json文件的第一位)
更新1:像这样更改代码…
.style("fill-rule", function(d) {
if (first_arc == "") first_arc = d; return "evenodd"})
…解决了问题,返回object
:
name: "flare"
children: Array[10]
...
但这种解决方案看起来并不正确,也不通用。
更新2:我尝试了几个选择,例如:
first_arc = d3.select("[name='flare']")
它通常返回array
:
0: null
length: 1
parentNode: HTMLHtmlElement
__proto__: Array[0]
或"未定义"
更新3:
first_arc = d3.select("[t_name='flare']")
返回带子级的大小为1的array
:
0: SVGPathElement
__data__: Object
,其中__data__
是我想要的对象,但我无法选择它。
根节点是"depth"属性设置为0的节点。所以你可以说:
d3.selectAll("path").filter(function(d) { return d.depth === 0; })
您上面的尝试没有成功,因为D3使用CSS3来选择元素。因此,您只能将d3.select和d3.selectAll与CSS3选择器一起使用,即您不能以这种方式访问绑定到每个元素的数据。对绑定数据进行筛选的方法是使用selection.filter.
D3选择实际上是一个元素数组,请参阅"对选择进行操作"部分。
最后,您可以使用selection.datum().
__data__
属性
相关文章:
- Webdriver.io pageObject模式-通过传递参数来定义元素选择器
- 使用元素选择器向Object添加函数
- j查询未来元素选择器
- 是否存在jQuery元素选择库的最小化版本
- Jquery动态元素选择器
- 为Select元素选择ONCHANGE
- 如何通过元素选择器获取tinyMCE编辑器实例
- 引导模式元素选择
- 下拉元素选择和 JS 调用不起作用
- 如何在 Edge Animate 中使用类元素选择器绑定 ElementAction
- 停止 Edge 浏览器尝试跨元素选择单词
- jQuery在以下选择器中引用初始元素选择器
- 编写一个类似jQuery的JS元素选择器
- 并行元素选择器
- 带有元素选择器的jQuery get()函数
- 如何设置为元素选择的属性并从其余部分移除属性
- Jquery Html元素选择器
- Jquery元素选择
- 如何使用Javascript防止HTML元素选择选项中的冲突
- 在IE上组合了活动状态伪类和相邻元素选择器