d3更新多个SVG
我在我的页面上成功创建了多(2)个SVG,我正在尝试更新它们d3更新多个SVG,svg,d3.js,Svg,D3.js,我在我的页面上成功创建了多(2)个SVG,我正在尝试更新它们 $('#Records li a ').click(function() { var id = event.target.id; var idparts = id.split("_"); var numrec = idparts[1]; $.get('php/connection2.php', { numrecs: numrec}, function(data)
$('#Records li a ').click(function() {
var id = event.target.id;
var idparts = id.split("_");
var numrec = idparts[1];
$.get('php/connection2.php', { numrecs: numrec}, function(data) {
var obj = JSON.parse(data);
var numericArray = createdata(obj);
var length = numericArray.length;
var svgs = d3.selectAll('svg');
for (var i = 0; i < length; i++)
{
svgs[0][i].attr("_data_",numericArray[i]);
}
return false;
});
});
附加的是一个SS,因为我们正在进入for循环
编辑:这是创建每个svg的循环的一部分
var svg = d3.select("#content").append("div").attr("class","datadiv").attr("id",mydata[i]+"_div").style("float","left").selectAll("svg")
.data(thisdata)
.enter().append("svg")
.attr("class", "box")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.bottom + margin.top)
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")")
.call(chart)
非常感谢您的帮助。您是否正在寻找类似
.data(函数(d,i){return numericArray[i];})
?未捕获类型错误:对象#没有方法“data”我不确定您要做什么?你只想更新数据吗?是的,就这些。我展示了对象层次结构,认为它可能会有所帮助。@Larskothoff的回答是正确的-您只需要重新绑定新数据.data()
是一种d3选择方法,而不是SVG DOM元素。很可能,您只需要d3.selectAll('svg').data(numericArray)
,而不是for
循环。
var svg = d3.select("#content").append("div").attr("class","datadiv").attr("id",mydata[i]+"_div").style("float","left").selectAll("svg")
.data(thisdata)
.enter().append("svg")
.attr("class", "box")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.bottom + margin.top)
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")")
.call(chart)