使用d3.js和SVG在Backbone.js中进行渲染
在backbone.js中,视图的渲染函数生成未附加的html,以后可以附加到dom 目前,我必须在HTML中有一个现有的目标,以便将svg附加到其中。然后,我使用data/enter模式将元素插入到svg中。有没有办法让d3.js生成svg而不将其附加到dom使用d3.js和SVG在Backbone.js中进行渲染,backbone.js,d3.js,Backbone.js,D3.js,在backbone.js中,视图的渲染函数生成未附加的html,以后可以附加到dom 目前,我必须在HTML中有一个现有的目标,以便将svg附加到其中。然后,我使用data/enter模式将元素插入到svg中。有没有办法让d3.js生成svg而不将其附加到dom var svg = d3.select("#target").append('svg') .attr("viewBox","0 0 100 100"); svg.selectAll("circle") .data(d
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");
我在这篇文章中找到了答案
真有办法 您是否尝试过
d3.selectAll([this.el])
?D3可能对jQuery对象不满意,它可能需要一个真正的数组。顺便说一句,我刚才提到的d3文档表明d3确实可以很好地处理Jquery对象。-->“这些方法还可以接受节点,这对于与第三方库(如jQuery或开发人员工具)集成非常有用。”是的,d3不能选择jQuery对象<代码>d3。选择(这个。$el[0])也应该可以。这正是我一直在寻找的!谢谢为什么d3不能选择jquery对象?
d3.select(this.el)