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

时间:2012-12-13 17:54:49

标签: javascript html d3.js svg

如果脚本不在该元素内,是否可以使用D3.js将SVG画布附加到<body>以外的元素?

例如,以下代码不起作用:

<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.select("body").append....,但显然我们并不总是希望将画布立即附加到正文中。

我发现如果<script>在容器div中,那么我可以使用d3.select("#container")但是我觉得我必须将我的脚本包含在特定容器中我想要画布。

1 个答案:

答案 0 :(得分:20)

您尝试在#container存在之前选择它。您需要将代码放在onload中,或者移动页面中#container下方的脚本。