1

だから私はhttp://bl.ocks.org/mbostock/4062045の例を理解しようとしていて、いくつか質問があります。

例から:

  var link = svg.selectAll(".link")
      .data(graph.links)
    .enter().append("line")
      .attr("class", "link")
      .style("stroke-width", function(d) { return Math.sqrt(d.value); });

基本的に(私が理解しているように)行っていることは、「リンク」クラスのすべての要素(つまり、何もない)を取得し、「graphs.links」からその要素の空のリストにすべてを追加することです。すべての新しい要素 (「enter()」で示されるように) は「line」タグでカプセル化され、「class」属性が設定され、様式化されています。

私の質問は... selectAll() が何も取得しないことがわかっている場合、なぜそれを行うのですか? なぜこれをしないのですか?:

  var link = svg
      .data(graph.links)
    .enter().append("line")
      .attr("class", "link")
      .style("stroke-width", function(d) { return Math.sqrt(d.value); });

やらない理由の1つは、うまくいかないように見えるからだと思います笑でも、なぜですか?

もちろん、enter()すべてが新しいと仮定すると、それも冗長に思えます。

何か案は?

4

2 に答える 2