2017-10-16 16 views
0

ここにはjsfiddleがあります。私は2番目のステップの後に私は新しいデータセットでテーブルの行を更新すると3と4が表示されることを期待します。しかし、まだ1と2を表示します。なぜですか?なぜネストされた要素が古いデータセットを保持しているのですか?それを修正するには?ネストされたタグを更新するには?d3.js入れ子にされたノードを更新するには?

const data1 = [1, 2]; 

const table = d3.select('body') 
    .append('table') 
    .append('tbody'); 

table 
    .selectAll('tr') 
    .data(data1) 
    .enter() 
    .append('tr') 
    .append('td') 
    .text(function(d) { 
    return d; 
    }); 

const data2 = [3, 4]; 

table 
    .selectAll('tr') 
    .data(data2) 
    .selectAll('td') 
    .text(function(d) { 
    return d; 
    }); 
+0

私は、もし第二段階に '.select( 'TD')'それが正常に動作しますが、なぜに '' .selectAll( 'TD')を置き換えることがわかりましたか? – zeleniy

+0

私が作ったこの表は、違いを理解するのに役立ちます:https://stackoverflow.com/a/44897592/5768908 –

答えて

0

ご質問の回答には、selectというサブ選択です。ドキュメント:

selection.selectAllとは異なり、selection.selectはグループ化に影響を与えません。既存のグループ構造とインデックスを保持し、選択した子にデータがあればそれを伝播します。グループ化はデータ結合において重要な役割を果たします。このトピックの詳細については、「ネストされた選択と選択の仕組み」を参照してください。

ここで重要な部分は、は、選択した子にというデータを伝播します。

関連する問題