1

d3.js 没有按预期附加 div。在 FF 18+ 和 Firebug 上调试。

返回 d3 对象(在警报消息上),但图表对象返回空白。

d3.js 库加载正常。

这是代码

    <?php header('Content-type: text/html; charset=utf-8');?>
<!DOCTYPE html>
<html>
    <head>
        <script type='text/javascript' src='js/d3.v3.js'></script>
        <script type='text/javascript'>
            var data = [4, 8, 15, 16, 23, 42];

            var chart = d3.select("#hurtme").append("div").attr("class", "chart");

            alert (d3);

            //chart.selectAll("div").data(data).enter().append("div").style("width", function(d) { return d * 10 + "px"; }).text(function(d) { return d; });

        </script>
    </head>
    <body>
        <div id='hurtme'></div>
        hello
    </body>
</html>

我错过了什么?

PS:我已经放弃了浏览器不兼容的问题,因为网络上的其他示例工作正常。

PS2:也尝试使用 d3.v2.js 并从源代码加载<script src="http://d3js.org/d3.v3.min.js"></script>,到目前为止没有成功。

4

1 回答 1

9

您的脚本在 div 存在之前被加载并执行。尝试在 div 之后移动脚本标签:

<div id='hurtme'></div>
<script> type='text/javascript'>
        var data = [4, 8, 15, 16, 23, 42];
        var chart = d3.select("#hurtme").append("div").attr("class", "chart");
</script>

或者使用“onload”功能:window.onload vs document.onload

于 2013-02-08T14:34:00.710 回答