有没有一种简单的方法来扩展以下代码,以便div.someclass
在它不存在时自动创建?
d3.select("body").select("div.someclass").selectAll("p")
.data([ 1, 2, 3 ])
.enter()
.append("p")
.text(function (d, i) {
return "index: " + i + ", value: " + d;
});
我仍处于学习 D3JS 的早期阶段。到目前为止,我对它的理解是“不要告诉 D3 如何做某事,而是告诉 D3 你想要什么”。所以我很惊讶地看到上面这段代码需要<div class="someclass"></div>
在 HTML 中声明。
另一种方法是以编程方式插入 div:
/** Append HTML placeholder programmatically **/
placeholder = d3.select("body").append("div").attr("class", "someclass");
/** Bind the data to the DOM **/
/** instead of telling D3 how to do something, tell D3 what you want: in the absence of <p>, this will return a virtual selection **/
placeholder.selectAll("p")
.data([ 1, 2, 3 ])
.enter()
.append("p")
.text(function (d, i) {
return "index: " + i + ", value: " + d;
});
有没有更短/更好的方法?