Добавление при использовании selectAll в d3

Я использую d3 и хочу добавить элемент, который я добавляю.

svg.append('g').attr('foo', 'bar')
    .selectAll('rect').data(data)
    .enter().append('rect')
        .attr('class', function(d) { return 'some-class' })
        .attr('y', 0)
        .attr('height', 42)
        .attr('x', function(d) { return d.x); })
        .attr('width', 9001);
        // hot damn would it be cool if I could just .append a span here...

Я хочу добавить диапазон к элементам, которые я вставляю, но я не знаю, как это сделать. Люди говорят использовать appendTo, но я не знаю, как это работает с selectAll, я пробовал перебирать элементы и добавлять их, но это тоже не работает, и я не знаю, почему.

svg.append('g').attr('foo', 'bar');
_.each(data, function(d) {
    var rect = $('rect')
        .attr('class', function() { return 'some-class'; })
        .attr('y', 0)
        .attr('height', 42)
        .attr('x', function() { return d.x; })
        .attr('width', 9001)
        .append('<span class="cool-class">Spantastic!</span>');

    svg.append(rect);
});

Я не очень знаком с этим типом вещей, я сделал несколько изменений, догадываясь, как это должно быть, но ничего не работает (d3 содержит информацию об объекте, не имеющем метода "indexOf"). Любые идеи? Спасибо.


person user1756980    schedule 02.12.2013    source источник
comment
Вы должны иметь возможность просто добавить .append("span") в конец вашего первого блока кода. Это добавит элемент span к каждому rect.   -  person Lars Kotthoff    schedule 03.12.2013
comment
@LarsKotthoff спасибо! Я делал это неправильно и пытался найти ответ в Google, и люди говорили о том, что вы не можете использовать .append .append, потому что был возвращен исходный объект, а не новый, и я подумал, что это моя проблема.   -  person user1756980    schedule 03.12.2013
comment
Круто, я добавлю это как ответ для справки.   -  person Lars Kotthoff    schedule 03.12.2013


Ответы (1)


Вы должны иметь возможность просто добавить .append("span") в конец вашего первого блока кода. Это добавит элемент span к каждому rect.

person Lars Kotthoff    schedule 02.12.2013