D3.js 为什么在svg元素d3js之外追加文本?

D3.js 为什么在svg元素d3js之外追加文本?,d3.js,D3.js,我尝试像这样在svg元素上添加文本 var chart = d3.select('.chart') .attr('width', 200) .attr('height', 200); var left_axis = chart.select('.left_axis') .data(left_axis_data) .enter().append('text') .attr("x

我尝试像这样在svg元素上添加文本

var chart = d3.select('.chart')
                .attr('width', 200)
                .attr('height', 200);


var left_axis = chart.select('.left_axis')               
    .data(left_axis_data)
    .enter().append('text')
    .attr("x", 0)
    .attr("y", function(d, i) { return i * 20})
    .attr("dy", ".35em")
    .text(function(d) { return d.name });

我的示例:为什么要在svg元素之外追加文本?

select
更改为
selectAll
,以确保属性应用于所有元素

var left_axis_data = [
    {
        name : 'a',
        nmb : '1',
        state : '0'
    },
    {
        name : 'b',
        nmb : '2',
        state : '0'
    },
    {
        name : 'c',
        nmb : '3',
        state : '0'
    }
];

var chart = d3.select('.chart')
                .attr('width', 200)
                .attr('height', 200);


var left_axis = chart.selectAll('.left_axis')               
    .data(left_axis_data)
    .enter().append('text')
    .attr("x", 0)
    .attr("y", function(d, i) { return i * 20;})
    .attr("dy", ".35em")
    .text(function(d) { return d.name; });