javascript - 更新 d3.js 中圆形元素的半径

标签 javascript jquery svg d3.js

我想更新力定向图中圆形元素的半径,但是当我想选择 d3.js 对象时,我收到错误 undefined is not a function

这是 svg 元素的结构

enter image description here

点击事件,触发新的半径

    $("#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;  
        }));
    }
});

complete sample

最佳答案

你的函数中的括号放错了地方,它应该是这样的:

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
}

但是如果不理解代码的其余部分,这看起来不像典型的“D3 方式”做事。是否有一个通用类可以应用于这些节点,然后用类似的方法选择它们?

d3.selectAll('.mycircles').attr('r', function(d) {
    return 30 * graph.nodeSizeFactor; 
});

关于javascript - 更新 d3.js 中圆形元素的半径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26740839/

相关文章:

javascript - 在 Node.js 附加代码中使用 Nan 创建数组

javascript - 从 SVG/paper js 生成 PDF

未找到 'Method Name' 的 javascript 方法未定义

jQuery 不会检查复选框

JavaFX 使用 SVGPath 作为掩码

javascript - 如何在悬停时更改 SVG 的描边颜色?

javascript - 停止输入文本中的 html

javascript - AngularJS - 如何更改包含数据绑定(bind)的模板中的元素?

javascript 和 d3.js 变量范围 : variable resets outside of function call

jquery - 无法覆盖外部文件的溢出 CSS 属性