Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript D3.JS-can';t变换选择_Javascript_D3.js - Fatal编程技术网

Javascript D3.JS-can';t变换选择

Javascript D3.JS-can';t变换选择,javascript,d3.js,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)" }) 事实上,if告诉我函数中未定义d。我想为我的每个节点定制转换。“转换”有什么特别之处吗?如何捕捉每个文本的y位置(

我有一个有效的脚本:

d3.selectAll(".info_Services").attr("transform",  "translate(100, 100)")
还有一个没有:

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

事实上,if告诉我函数中未定义
d
。我想为我的每个节点定制转换。“转换”有什么特别之处吗?如何捕捉每个文本的y位置(信息服务是SVG
text
s)。

正如错误所说,
d
在代码中未定义。但是如果您已经绘制了
svg
元素,那么实际上可以像这样访问
转换

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)" } 

);
d3.selectAll(“.info\u Services”).data(myData).enter().append(“”)attr('class','info\u Services').attr('transform',函数(d){
返回“translate(“+d.y+”,100)”}
);

d未定义似乎表明您以前没有使用d3的.data(yourData)函数将任何数据绑定到.selectAll(“.info\u服务”)