0

d3 を使用すると、次のことができます。

var labels = d3.select("div#labels").insert("svg:svg")
  //....

次に、以下のコードで実行できます。

labels.selectAll("text")
  //... act upon the selection...

しかし、firebug コンソールでは:

>>> labels.selectAll("text")
  // produces: TypeError: labels.select is not a function

と:

>>> d3.labels.selectAll("text")
  //produces: TypeError: d3.labels is undefined

なんで?

4

1 に答える 1

1

labels2 つの異なる変数があると思います。ローカルとグローバルです。

local を宣言した場所でvar labels、デバッグ用にグローバル スコープにも格納します (例: 経由window.locallabels = labels)。次に、コンソールで、異なるラベルが同じかどうかをテストします。そうではないと思います。

var labels = { text: "bla" }     // create a new object

function fn(){
    var labels = { text: "bla" } // create another object
    window.locallabels = labels  // save it in global scope for debugging
}

fn();

console.log(labels, locallabels, labels == locallabels) //try this in console
//console: Object { text="bla"} Object { text="bla"} false
于 2012-12-20T18:24:52.283 に答える