2
我有樹結構的JSON。我呈現這樣的:如何使用d3動態更新嵌套列表?
var lis = d3.select("#active ul")
.selectAll("li")
.data(getTopLevelChildren(), nodeId);
lis.enter().append("li").each(makeNodeView);
makeNodeView
遞歸做同樣的事情,它創建DOM中的ul
/li
樹。
但是,我也想動態更新列表。這種直接的代碼不起作用:
lis.each(updateNodeView);
lis.exit().remove();
的問題是,selectAll("li")
選擇了所有li
節點遞歸。所以lis.exit().remove()
刪除頁面上任何地方的所有li
標籤,除了那些在樹根上的標籤。
如何一次只選擇樹的一級?
一個簡單的方法是將一個類添加到所有指定其級別的「li」元素(例如'level1'等)並根據該元素進行選擇。 –