我一直在使用示例"Using D3.js to present XML as HTML Table"来尝试学习 D3.js API。我想我已经掌握了它,但我无法理解.selectAll()
的作用,the documentation对它的帮助不大。
如果你看一下例子,第17行:var td = tr.selectAll("td")
。我也可以将其写为tr.selectAll("tr")
,它将返回完全相同的表/页面。事实上,我可以写tr.selectAll("SomethingCompletelyRandom")
但它仍然有效,但我无法删除.selectAll()
。
这里发生了什么? .selectAll()
做了什么?它如何依赖选择器?
答案 0 :(得分:3)
它选择所有<td>
个节点作为父<tr>
节点的子节点。 D3将此作为数组对象返回,即selectAll()
将返回包含<td>
个节点数组作为对象的数组,您可以在每个对象上调用其他d3函数。此外,了解幕后发生的事情的一个好方法是使用Chrome开发人员工具并在控制台中执行一些代码。
示例,假设您有此表:
<table>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</table>
如果您在控制台中运行d3.selectAll("td")
,您获得的结果将是:
[Array[3]] // A two dimensional array that contains 3 of the "td" nodes, each of of which is an object.
>0: td // A D3 selection object.
>1: td
>2: td
length: 3
parentNode: document
__proto__: Array[0]
答案 1 :(得分:3)