D3.js d3选择全部选择全部追加追加
我想构建D3.js d3选择全部选择全部追加追加,d3.js,D3.js,我想构建结构,其中每个都包含数据项 d3.select("#myDiv").selectAll("ul").selectAll("li").data(flatData).enter().append("ul").append("li").text(function(d) { return d.label; }); 我错在哪里?如果里面只有一个#myDiv和一个ul,那么: d3.select("#myDiv") .select("ul") // or .append("ul") .se
结构,其中每个都包含数据项
d3.select("#myDiv").selectAll("ul").selectAll("li").data(flatData).enter().append("ul").append("li").text(function(d) { return d.label; });
我错在哪里?如果里面只有一个#myDiv
和一个ul
,那么:
d3.select("#myDiv")
.select("ul") // or .append("ul")
.selectAll("li").data(flatData)
.enter()
.append("li")
.text(function(d) { return d.label; });
让我困惑的是把enter()放在哪里。我以为在enter()之前我应该选择东西,但是在添加东西之后。@ses是的,这有点让人困惑。请注意,对于ul
使用select()
,对于li
使用selectAll()
非常重要。前者设置父上下文,后者准备将其绑定到数据。典型的d3序列selectAll-then-bind-then-append只能在一个级别上工作。如果需要创建也绑定到数据的ul
元素(内部嵌套li
s),则需要有两级数据(在二维数组中),并将每个元素绑定到适当的级别,并使用enter()
两次。查看使用d3创建htmltable
s的正确方法示例,以获得更好的不可理解性。