Comments (3)
@seanlacey Thank you! Great question.
Part of the chaining structure is that selections get "handed off" to each subsequent link in the chain. When we're talking about selections, usually (but not always) we'll start with a broader selection, then narrow down, so later parts of the chain are dealing with more specific selections.
For example, going from broad to specific in the DOM:
html > body > p
The HTML element is parent to the body
element, which is parent to the p
element. So you could select that p
with:
d3.select("html").select("body").select("p")
This is a verbose, clunky way to write D3 code, but bear with me. This moves from general to specific. d3.select("html")
selects the HTML element, then "hands off" that reference to the next link in the chain. select("body")
starts with the HTML element selection, then within that searches for the first body
element. (Spoiler: There's only one!) Then the selection pointing to body
is handed off to the final select("p")
, which looks inside of the body
selection to find a p
.
When you store the result of a chained sequence like this in a variable, whatever is left at the end of the chain is stored in the variable. So:
var paragraph = d3.select("html").select("body").select("p")
Here, the selections of html
and body
are used briefly, just to get to p
, which is then stored in paragraph
for later reference.
Does that help?
from d3-book.
I think so, I think I was reading the chapter 9 example as the selection would contain all p elements regardless of if they were in the body element (though there wouldn't be any) which was leading to my confusion.
Also here's a link to my first D3 project (with a lot of help from your mapping chapter). Thank you again, the book has been great! https://slacey.net/DIBNovember2019/DIBNOV2019.html
from d3-book.
Wow, you made an interactive map!! 👏 I love it! I accidentally stumbled into a Rubik's competition once. That blew my mind. Little kids, solving them in just a few seconds!
When working with selections, use console.log()
liberally, or just check things in the console. Don't trust me when I say "this will include paragraphs" or whatever. Just log that value out and poke at it yourself. :) That will help it all make sense!
from d3-book.
Related Issues (20)
- chapter_13/06_stacked_area.html does not run HOT 2
- Chapter_07 - 09_time_scale.html HOT 7
- chapter_11/01_line_chart.html HOT 4
- 06_stacked_area HOT 1
- Chapter 16 parseTime -> d3.timeParse HOT 1
- Chapter 16 parseTime => d3.timeParse() HOT 1
- chapter_08/09_time_axis_prettier.html + chapter_07/09_time_scale.html HOT 3
- d3 v5 - update to d3.json (Chapter 14) HOT 1
- converting rows in d3.csv() HOT 2
- time-based axes code? HOT 4
- Ch7_Code_09_time_scale.html HOT 1
- Incorrect hyperlink in Chapter 2 on oreilly.com HOT 1
- Chapter 5 HANDLING DATA-LOADING ERRORS HOT 6
- Tooltips HOT 2
- MDN shortlink in chapter 3 redirects to old page that 404s
- Chapter 3 scope clarification (AKA who will gotcha the gotchas?)
- Chapter 14 - Dragging event HOT 1
- Chapter 12 - freakOut function in each() HOT 1
- Chapter 8 - Positioning Axes suggestion HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from d3-book.