15

在backbone.js 中,视图的渲染函数会生成未附加的html,以后可以附加到dom。

目前,我必须在 HTML 中有一个现有目标才能将 svg 附加到。然后我使用数据/输入模式将元素插入到 svg 中。有没有办法让 d3.js 在不将其附加到 dom 的情况下生成 svg?

var svg = d3.select("#target").append('svg')
    .attr("viewBox","0 0 100 100"); 

svg.selectAll("circle")
    .data(data)
    .enter().append("circle")
        .attr("r", 10)
        .style("fill", "black");

或者,是否可以为 d3 提供一个未附加的 dom 元素来附加内容?像这样的东西?D3.js 文档建议 select 可以接受节点,但以下对我也不起作用

var svg = d3.select(this.$el).append('svg')  // Uncaught TypeError: Object [object Object] has no method 'appendChild' 
    .attr("viewBox","0 0 100 100");     

svg.selectAll("circle")
    .data([1,2,3])
    .enter().append("circle")
        .attr("r", 10)
        .style("fill", "black");
4

1 回答 1

12

我在这篇文章中找到了答案SVG没有正确渲染为主干视图

d3.select(this.el) 

成功了!

于 2012-06-13T23:09:47.863 回答