.selectAll()究竟做了什么?
问题描述:
我一直玩弄"Using D3.js to present XML as HTML Table"的例子,试图学习D3.js API。我想我已经掌握了它,但我无法真正理解.selectAll()
的作用,而the documentation对此不是很有帮助。.selectAll()究竟做了什么?
如果你看看例子,第17行:var td = tr.selectAll("td")
。我也可以将其写为tr.selectAll("tr")
,它将返回完全相同的表格/页面。事实上,我可以写tr.selectAll("SomethingCompletelyRandom")
,它仍然可以工作,但我无法删除.selectAll()
。
这是怎么回事? .selectAll()
是做什么的?它如何取决于选择器?
答
它选择所有<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]
D3 “选择” 参考:(1)http://bost.ocks.org/mike/nest/,(2)HTTP:// WWW。 jeromecukier.net/blog/2013/03/05/d3-tutorial-at-strata-redux/,(3)http://www.dashingd3js.com/binding-data-to-dom-elements,(4)http ://bost.ocks.org/mike/join/。 – mg1075 2013-03-08 01:47:10