D3.JS - 无法改变选择

时间:2016-01-25 13:48:04

标签: javascript d3.js

我有一个有效的脚本:

d3.selectAll(".info_Services").attr("transform",  "translate(100, 100)")

另一个没有:

d3.selectAll(".info_Services").attr("transform",  function(d){ return "translate("+d.y+", 100)" })

确实如果告诉我d在函数中未定义。我想为每个节点自定义转换。 “变换”有什么特别之处吗?如何捕获每个文本的y位置(info_Services是SVG text s。)

1 个答案:

答案 0 :(得分:0)

如错误所示,代码中未定义d。但是,如果您已经绘制了svg元素,则可以像这样访问transformation

d3.selectAll(".info_Services").attr("transform",  function(){ 

   var currentElem = d3.seect(this);
   var tx = d3.transform(currentElem.attr('transform')).translate;
   var transX = tx[0];
   var transY = tx[y];

   //return "translate("+d.y+", 100)" } 

);

但是如果要在绘制元素时调整转换,则必须先绑定数据。

d3.selectAll(".info_Services").data(myData).enter().append('<yourElement>')attr('class','info_Services').attr("transform",  function(d){ 

 return "translate("+d.y+", 100)" } 

);