Javascript 使用D3将SVG画布附加到除body之外的元素

Javascript 使用D3将SVG画布附加到除body之外的元素,javascript,html,d3.js,svg,Javascript,Html,D3.js,Svg,如果脚本不在某个元素中,是否可以将SVG画布附加到该元素而不是使用D3.js 例如,下面的代码不起作用: <html> <body> <script src="../../d3.v2.js"></script> <script> var vis = d3.select("#container") .append("svg:svg") .attr("width",w) .at

如果脚本不在某个元素中,是否可以将SVG画布附加到该元素而不是使用D3.js

例如,下面的代码不起作用:

<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>
我看到的所有示例都使用d3.selectbody.append。。。。但很明显,我们并不总是希望将画布立即附加到主体上


我发现如果在container div中,那么我可以使用d3.selectcontainer,但我觉得奇怪的是,我必须在需要画布的特定容器中包含脚本。

您试图在容器存在之前选择它。您需要将代码放入onload或将脚本移动到页面中容器的下方。

此外,脚本的标题中包含“归属”。这是一个有争议的问题,因为有些人喜欢将所有或大部分脚本放在页面的末尾,以防阻止页面加载和呈现。太好了,感谢您的快速响应。就像一个符咒一样,这也帮助我更好地理解d3选择器是如何工作的。我不知道为什么,但我看到的所有d3示例都将元素放在正文的开头。似乎它并没有真正提供一个关于如何与页面其余部分集成的好例子。太棒了!非常感谢。我已经在这上面呆了48个小时,快发疯了