Используйте заданную функцию i
переменную, которая ссылается на индекс объекта массива.
var data = [[0,0,2],[0,23,5],[2,12,5]];
circleSet = svg.selectAll()
.data(data)
.enter()
.append('circle')
.attr('fill',function(d,i){i === 1 ? return 'red' : return 'black' };
Найти больше ссылок структуры массива в d3.js at this tutorial
Вы также можете кодировать каждый элемент, добавляемого путем использования подсчета индекса i
при присвоении класса.
var data = [[0,0,2],[0,23,5],[2,12,5]];
circleSet = svg.selectAll()
.data(data)
.enter()
.append('circle')
.attr("class",function(d,i){ return "yourclass item" + i })
var theSecondElement = d3.select(".item1")
Наконец, вы можете использовать метод .each и условный целевой конкретный элемент
circleSet = svg.selectAll()
.data(data)
.enter()
.append('circle')
.each(function (d, i) {
if (i === 1) {
var that = this;
(function textAdd() {
d3.select(that).append('h1').text(i);
)();
}
});
Предполагая, что это единственные круги в вашем SVG, вы можете сделать 'd3.select (" circle: nth-child (2) ")'. –