d3动态文本循环

时间:2013-07-02 12:04:49

标签: text d3.js

我有一个名为keys [1:"XXX",2:"YYY"]的数组,我在页面上已经有2个svg元素。我希望每个元素都有一个数组值,但下面的代码将两个值都放在每个文本标签中。我尝试了keys[i],但i未定义。我怎么能做到这一点?

svg.selectAll("svg").
data(keys).
enter()
    .append("svg:text")
         .attr("x", width )
         .attr("y", height).
         .attr("dx", -width/2)
         .attr("text-anchor", "middle")
         .attr("style", "font-size: 12; font-family: Helvetica, sans-serif")
         .text(function(keys) { return keys;})
         .attr("transform", "translate(0, 18)")
         .attr("class", "yAxis");

1 个答案:

答案 0 :(得分:0)

text函数参数使用名称keys。请尝试使用d

svg.selectAll("svg")
.data(keys)
.enter()
.append("svg:text")
  .attr("x", width )
  .attr("y", height).
  .attr("dx", -width/2)
  .attr("text-anchor", "middle")
  .attr("style", "font-size: 12; font-family: Helvetica, sans-serif")
  .text(function(d) { return d;})
  .attr("transform", "translate(0, 18)")
  .attr("class", "yAxis");

attrtext方法的参数是一个函数,它接受数据元素并使用其值来计算属性或文本值。您正在使用全局变量keys的值,它具有两个元素。