我想在力导向图中更新圆形元素的半径,但是当我想选择d3.js对象时,我得到错误undefined is not a function
。
这是svg元素的结构
点击事件,触发新半径
$("#resizeN").on("click",function(){
for (var i = 0; i < nodes.length; i++){
var f = d3.select("svg #n" + (i+1).toString().attr("r", function (n){
return 30 * graph.nodeSizeFactor;
}));
}
});
答案 0 :(得分:2)
你的函数中有一个错位的括号,它应该是这样的:
for (var i = 0; i < nodes.length; i++){
var f = d3.select("svg #n" + (i+1).toString()).attr("r", function (n){
return 30 * graph.nodeSizeFactor;
}); // moved it from here to before the .attr
}
但是如果不了解其余的代码,这似乎不像典型的&#34; D3方式&#34;做事。是否有一个可以应用于这些节点的公共类,然后用类似的东西选择它们?
d3.selectAll('.mycircles').attr('r', function(d) {
return 30 * graph.nodeSizeFactor;
});