d3 Version4获取null对象

时间:2016-12-02 19:12:31

标签: javascript d3.js svg

我正试图让d3 v4工作基本的简单渲染,因为v3之前工作过,我得到的是null对象。 这是代码的简单版本:

<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/4.4.0/d3.min.js"></script>
<script>
    var dataset = [23, 45, 66, 77, 88, 99];
    var svg = d3.select("body").append("svg").attr({width: 500, height: 500});
    console.log('svg : '+svg);
</script>

上述代码的结果是:

  

svg:null

用v3编写相同的代码,结果

  

svg:[object SVGSVGElement]'

我在这里缺少什么?我正在学习这些教程,其中大部分都在v3中。

2 个答案:

答案 0 :(得分:4)

attr函数可以使用两个参数 - 属性名称和属性值。试试这个:

var dataset = [23, 45, 66, 77, 88, 99];
var svg = d3.select("body").append("svg")
    .attr("height", 500)
    .attr("width", 500);

console.log('svg : '+svg);

答案 1 :(得分:1)

尽管所有答案(包括当前接受的答案)都没有说明,但可以将对象传递给D3版本4.x中的DBHelperDBHelper.save(),只要:

  • 首先,您引用“selection-multi”:

    attr
  • 其次,您使用style<script src="https://d3js.org/d3-selection-multi.v1.min.js"></script> 作为复数:

    attrs

因此,在您的代码中,它应该是:

styles

这是一个演示,向您展示可行

d3.select("body").append("div")
     .attrs({
        title: "A cheery, timeless greeting.",
        class: "greeting"
     })
    .text("Hello, world!");
var svg = d3.select("body")
    .append("svg")
    .attrs({width: 500, height: 500});