Czy można dołączyć płótno SVG do elementu innego niż <body>
przy użyciu D3.js, jeśli skrypt nie znajduje się w tym elemencie?Dołączanie kanwy SVG do elementu innego niż ciało za pomocą D3
Na przykład, poniższy kod nie działa:
<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>
Wszystkie przykłady widziałem wykorzystanie d3.select("body").append....
ale wyraźnie nie zawsze chce się natychmiast dołączyć płótno do ciała.
Znalazłem, że jeśli <script>
znajduje się wewnątrz pojemnika div, mogę użyć d3.select("#container")
, ale wydaje mi się dziwne, że będę musiał dołączyć mój skrypt do konkretnego kontenera (ów), gdzie chcę płótno.
Skrypt obejmuje również należą do 'header'. – bobthyasian
To kwestia dyskusyjna, ponieważ niektórzy ludzie lubią umieszczać wszystkie lub większość skryptów na końcu strony, aby zapobiec blokowaniu wczytywania i renderowania strony. – Zikes
Cudownie, dziękuję za szybką odpowiedź. Działa jak urok - pomaga mi również lepiej zrozumieć, jak działają selektory d3. – Gilman