如果我使用 d3 使用数据集生成一堆 DOM 元素,我会维护对数据对象的引用。
稍后,如果我修改数据对象 - 添加/删除元素更改属性等 - 然后我可以重新评估 DOM 元素上的属性并期望它反映对数据对象所做的修改吗?
例如
existingElements.attr('x', function(d) { return d.size; });
如果我使用 d3 使用数据集生成一堆 DOM 元素,我会维护对数据对象的引用。
稍后,如果我修改数据对象 - 添加/删除元素更改属性等 - 然后我可以重新评估 DOM 元素上的属性并期望它反映对数据对象所做的修改吗?
例如
existingElements.attr('x', function(d) { return d.size; });
是的,您可以期待他们更新。
如果没有更多代码,很难猜测,但您可以使用以下代码:
var els = d3.select("body").selectAll("div");//Cache elements
els.style('background','blue')//Change background to blue;
els.style('background','red')//Change background to red;
els.style("width", function(d) {
return d *1/3 + "px"; //Divide elements width by 3
});