Specify where in the DOM tree a change should take place and which elements will be affected; the user must be able to select a node (or set of nodes).
Associate individual records from the data set with specific elements or nodes in the DOM tree; enable the user to bind or join a data set to a selection of nodes.
Change the size, position, and appearance of DOM elements according to the values of the data associated with them.
The first and last item in this list are common activities in contemporary web development, and users familiar with the jQuery library, for instance, should feel quite at home. (But if you are not familiar with jQuery and the particular style of programming popularized by it, D3 can seem very peculiar indeed!)
The second item, however, is different. The idea to establish a tight association between individual data records and individual DOM elements, so that ...