使用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
为什么?
答案 0 :(得分:1)
我猜你有两个不同的labels
变量。本地和全球的。
在您声明本地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