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

0

Я использую 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"). Есть идеи? Благодарю.

  • 1
    Вы должны иметь возможность просто добавить .append("span") в конец вашего первого блока кода. Это добавит элемент span к каждому rect .
  • 0
    @LarsKotthoff спасибо! Я делал это неправильно и пытался найти ответ в Google, и люди увидели, что вы не можете использовать .append .append, потому что исходный объект был возвращен, а не новый, и я подумал, что это моя проблема.
Показать ещё 1 комментарий
Теги:
d3.js
append

1 ответ

0

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню