如果脚本不在该元素内,是否可以使用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")
但是我觉得我必须将我的脚本包含在特定容器中我想要画布。
答案 0 :(得分:20)
您尝试在#container
存在之前选择它。您需要将代码放在onload
中,或者移动页面中#container
下方的脚本。