Подтвердить что ты не робот

Добавить холст SVG к элементу, отличному от тела, используя D3

Можно ли добавить холст SVG к элементу, отличному от <body>, используя D3.js, если script не находится внутри этого элемента?

Например, код ниже не работает:

<html>
<body>
<script src="../../d3.v2.js"></script>
<script>
    var vis = d3.select("#container")
        .append("svg:svg")
          .attr("width",w)
          .attr("height",h);
</script>

<div id="container"></div>

</body>

Все примеры, которые я видел, используют d3.select("body").append...., но ясно, что мы не всегда хотим добавить холст непосредственно в тело.

Я обнаружил, что если <script> находится внутри div контейнера, я могу использовать d3.select("#container"), но мне кажется странным, что мне нужно будет включить мой script внутри конкретного контейнера (ов), где я хочу холст.

4b9b3361

Ответ 1

Вы пытаетесь выбрать #container до его существования. Вам нужно поместить свой код в onload или переместить script ниже #container на странице.