2

こんにちは、D3 SVG オブジェクトがあります。

 d3.select("#chart").append("svg")
.attr('id', 'chartId' + idx)

これに四角形を追加して棒グラフを作成します。

DOMから追加および削除できるようにしたいと思います。

次の方法で簡単に削除できます。

d3.select('svg#chartId' + j).remove();

削除したばかりの SVG チャート全体を再追加するにはどうすればよいですか?

4

2 に答える 2

0

D3 は、削除されたノードの再接続をサポートしていません。

selection.remove()ノードを完全に破壊するわけではありませんが、jQuery のdetach()メソッドと非常によく似た動作をします。(SVG 要素で jQuery を使用することは決してうまくいきません)

幸いなことに、これは組み込みの SVG DOM を使用すると非常に簡単です。

// .remove() returns the detached node.
var el = d3.select('.selection').remove();
var nativeEl = el[0][0];
nativeEl.parentNode.appendChild(nativeEl);

通常は、これらの要素を表示および非表示にする方がおそらく簡単ですが、レンダリング後に要素の順序を再配置するなどの場合、これは非常に便利です。

于 2015-03-17T02:12:22.963 に答える
-1

detach()の代わりに使用remove()

var refToElelment = $(d3.select('svg#chartId' + j)).detach();

また

$('#chartId' + j).detach()

後で..

$('#target').append(refToElelment);
于 2012-07-27T06:25:57.857 に答える