selection.exit - 余った要素を選択する
投稿日: / 更新日:
d3.jsのselection.exit()
は、実際に存在する要素に対して、関連付けたデータの数が足りなかった場合に、その差分の要素だけを含んだd3.selectionオブジェクトを作成するメソッドです。enter()
の反対の働きをします。
サンプルコード
<ul>
<li>1つ目の要素</li>
<li>2つ目の要素</li>
<li>3つ目の要素</li>
<li>4つ目の要素</li>
<li>5つ目の要素</li>
</ul>
// ul要素を選択
d3.select( "ul" )
// ul要素の中の、li要素を選択状態にする
.selectAll( "li" )
// li要素にデータ(3個)を関連付ける (2個足りない)
.data( [ "1個目のLI", "2個目のLI", "3個目のLI" ] )
// [exit()]を実行する
.exit()
// 余った分のli要素のテキストを変更する
.text( "余ってるで、これ" ) ;
デモ
仕組み
exit()
は、「データの数に対して余った分の要素だけを選択してくれる」と理解しておけば、支障はないと思います。
<ul>
<li>1つ目の要素</li>
<li>2つ目の要素</li>
<li>3つ目の要素</li>
<li>4つ目の要素</li>
<li>5つ目の要素</li>
</ul>
// ul要素の中の全てのli要素を選択
d3.select( "ul" ).selectAll( "li" ) ;
exit()
は、data()
とセットで利用する関数です。要素の数が5個なのに対し、3個のデータを関連付けます。
// データを関連付けする (3個の値だから、2個のli要素が余ることになる)
.data( [ "1個目のLI", "2個目のLI", "3個目のLI" ] ) ;
ここでexit()
を実行すると、データが関連付けられない、4個目、5個目のli要素を含むd3.selectionオブジェクトが返ります。
// 余った分を選択する
.exit() ;
exit()
で選択した要素に対して、処理を行なうことができます。例えば、データが関連付けられない分に関しては削除、といった処理が可能です。
// 余ったli要素を削除する
.remove() ;
構文
selection = selection.exit()
項目 | 説明 |
---|---|
selection | 関連付けるデータの数を超えた分の要素を含んだd3.selectionオブジェクトが戻り値となる。 |