D3 Выбор элемента внутри SVG - PullRequest
21 голосов
/ 17 февраля 2012

Я пытаюсь создать несколько графиков в D3. Пока люблю это, но я немного застрял. Я хочу создать одну область для хранения точек данных, а другую - для оси и меток. Я думаю, что сделаю еще более мелкие, чтобы сделать обновление более эффективным. Но проблема, с которой я столкнулся, заключается в том, что я не могу выбрать подэлементы в SVG.

Вот что у меня есть:

var graph = d3.select('#Graph svg')
if (graph[0][0] == null){
    graph = d3.select('#Graph')
        .append("svg:svg")
        .attr("width",width)
        .attr("height",height)
        .attr("class","chart");
}

graph.append("svg:g")
    .attr("id","data")

Сейчас я не нашел способа выбрать этот контейнер данных. Я пытался

d3.select("#Graph svg data")

Но не повезло. Есть идеи?

Ответы [ 2 ]

22 голосов
/ 17 февраля 2012

Давайте попробуем этот код.

d3.select("#Graph svg").selectAll("g")

«g» означает выбрать все узлы «g» в узле svg.

1 голос
/ 15 января 2016

При создании контейнера данных с помощью append() вы можете сохранить выборку в переменную.

const dataContainer = graph.append("svg:g")
    .attr("id","data");

Если все сделано таким образом, вам даже не нужно будет снова делать выбор d3 (аналогичным образом вы сделали с var graph в 1-й строке кода в вашем вопросе), потому что ссылка на этот выбор уже хранится в вашем var dataContainer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...