ツリー構造の JSON があります。私はそれを次のようにレンダリングします:
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
一度にツリーの 1 つのレベルのみを選択するにはどうすればよいですか?