d3更新多个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)

我在我的页面上成功创建了多(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) {

            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)