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位置(信息服务是SVGtext
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服务”)