3

ツリー構造の 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 つのレベルのみを選択するにはどうすればよいですか?

4

1 に答える 1