Is it possible to append an SVG canvas to an element other than <body> using D3.js if the script is not inside that element?
For example, the code below does not work:
<html>
<body>
<script src="../../d3.v2.js"></script>
<script>
var vis = d3.select("#container")
.append("svg:svg")
.attr("width",w)
.attr("height",h);
</script>
<div id="container"></div>
</body>
All examples I have seen use d3.select("body").append.... but clearly we don’t always want to append the canvas immediately to the body.
I found that if the <script> is inside the container div then I can use d3.select("#container") but it seems strange to me that I would have to include my script inside of the specific container(s) where I want the canvas.
You’re trying to select
#containerbefore it exists. You’ll need to put your code in anonloador move the script below#containerin the page.