我试图通过将应答者的代码用作经过我自己修改的模板来遵循应答者的jsbin中的示例。因为什么都没出现,所以我尝试直接复制和粘贴他们的代码,但这也没有用。实际上,我想添加到主体的svg元素根本没有出现。最后,我编写了一个非常非常简单的脚本来测试向主体添加svg。
<!DOCTYPE html>
<html>
<head>
<script src="http://d3js.org/d3.v3.min.js"></script>
<style>
svg{
border:1px solid #ccc;
}
</style>
<script>
var svg = d3.select("body").append("svg")
.attr("width",500).attr("height",300);
</script>
</head>
<body>
</body>
</html>
但是,即使是从笔记本电脑(从记事本++)在Chrome中运行它,也无法正常工作。我的其他更复杂的程序将完美运行,并且此(http://jsbin.com/zeqecoge/1/edit)的jsbin也可以正常运行。我很困惑,想知道我是否只是在做某种完全错误的事情
最佳答案
您没有在发布的代码段中定义主体,更重要的是,当评估script标记中的脚本时,不存在(它知道的)body标记
尝试这个:
<!DOCTYPE html>
<html>
<head>
<script src="http://d3js.org/d3.v3.min.js"></script>
<style>
svg{
border:1px solid #ccc;
}
</style>
</head>
<body>
<script>
var svg = d3.select("body").append("svg")
.attr("width",500).attr("height",300);
</script>
</body>
</html>
注意:我不是html / js专家,我希望如果我错了,有人会纠正我。浏览器打开html文件的行为是它从上到下读取文件,因此,在进入脚本时,您要求选择body标签(并附加等),但是没有body标签已经遇到。因此,这里的解决方法不仅是添加body标记(因此它存在),而且还要将该脚本放置在body标记内(或之后)(以便计算机在评估脚本时就可以意识到它)。
关于javascript - D3:SVG未附加到主体,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24765194/