D3.js 如何给同样的课程

D3.js 如何给同样的课程,d3.js,svg,D3.js,Svg,我在中有的svg元素,我想给每个圆圈标记一个类,如下所示: <g class="parent"> <circle class="circle_0"></circle> <circle class="circle_0"></circle> <circle class="circle_0"></circle> <circle class="circle_0"></c

我在
中有
的svg元素,我想给每个圆圈标记一个类,如下所示:

 <g class="parent">
    <circle class="circle_0"></circle>
    <circle class="circle_0"></circle>
    <circle class="circle_0"></circle>
    <circle class="circle_0"></circle>
  </g>
  <g class="parent">
    <circle class="circle_1"></circle>
    <circle class="circle_1"></circle>
    <circle class="circle_1"></circle>
    <circle class="circle_1"></circle>
  </g>
  <g class="parent">
    <circle class="circle_2"></circle>
    <circle class="circle_2"></circle>
    <circle class="circle_2"></circle>
    <circle class="circle_2"></circle>
  </g>

如何实现这一点?

因为您使用的是D3 v3,所以可以使用第三个参数(即父级索引)来设置类:

.attr("class", function(d,i,p){
    return "class_" + p;
});
检查代码段:

var数据=[[1,1,1,1],[1,1,1,1],[1,1,1];
var svg=d3.选择(“主体”);
var g=svg.append(“g”)
var parentElement=g.selectAll(“.parent”)
.数据(数据)
.enter().append(“g”)
.attr(“类别”、“母公司”);
parentElement.selectAll(“.circle”)
.data(函数(d,i){返回d;})
.enter().append(“圆”)
.attr(“类”,函数(d,i,p){
控制台日志(“圆圈”+p);
返回“圆圈”+p;
})

您尝试了什么?所以,当你陷入困境时,你通常会尝试一下自己,问一个问题。如果您的代码不起作用,请将其发布到您的问题中。在@Paul所说的基础上,我假设您已经有了创建组和圆的代码,而您的问题只是设置类。。。在这种情况下,请发布您的代码。@PaulLeBeau对此表示抱歉。我刚刚添加了我创建它的方式和其他重要信息:您使用的是D3V3还是v4?@GerardoFurtado我使用的是v3Thanks Gerardo!哇,那很容易。我甚至不知道还有第三个论点。
.attr("class", function(d,i,p){
    return "class_" + p;
});