D3 Выбор элемента внутри SVG
-
27-10-2019 - |
Вопрос
Я пытаюсь создать несколько графиков в 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")
Но не повезло. Любые идеи?
Решение
Попробуем этот код.
d3.select("#Graph svg").selectAll("g")
«G» означает выбрать весь узел «G» под узлом SVG.
Другие советы
При создании контейнера данных с append()
, вы можете сохранить его в качестве выбора в переменную.
var dataContainer = graph.append("svg:g")
.attr("id","data");
Если сделано таким образом, вам даже не нужно будет снова сделать выбор D3 (аналогичным образом вы сделали с var graph
В 1 -й строке кода в вашем вопросе), потому что ссылка на этот выбор уже хранится в вашем VAR dataContainer
.