d3.js绑定到元素上的数据的某个属性值更新,怎么更新其子元素对应的值

  var node = this.vis.selectAll('.node').data(nodes, function(d) {
                    return d.id;
                });

  var svg = node.enter().append('svg:svg').classed('node',true);
        svg.append('svg:image').attr('href',function(d){return d.src});
        

如上,点击刷新时,nodes数据已经更新,但img上的d拿到的数据还是之前绑定的数据,并不是最新的数据

阅读 3.7k
1 个回答

enter只适用于新增加的元素,如果希望已有元素update的话可以使用下列方式

node.select('svg:image').attr('href', function(d) { return d.src });

关于D3.js Update、Enter、Exit推荐看一下这篇文章http://wiki.jikexueyuan.com/p...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题