所以我遇到一個問題,當遵循一個非常簡單的d3教程。從本質上講,我試圖通過數據綁定到當前SVG圈要素然後調用enter.append加入SVG圈要素如下圖所示:d3附加並輸入問題
var svg =d3.select("body").selectAll("svg");
var circle = svg.selectAll("circle");
var w=window.innerWidth;
console.log(circle);
circle.data([500,57,112,200,600,1000]);
circle.enter().append("circle")
.attr("cy",function(d) {
return (d)
})
.attr("cx", function(i){
return (i*100)
})
.attr("r", function(d) {
return Math.sqrt(d);
})
這似乎是它會增加3個新的圈子元素(因爲我已經有3個創建)。然而,而不是獲取添加這3組新的圓的元素,我遇到了這個錯誤:
Uncaught TypeError: Object [object SVGCircleElement],[objectSVGCircleElement],[object SVGCircleElement] has no method 'enter'
我已基本完成與段落同樣的事情,它似乎很好地工作:
var p =d3.select("body").selectAll("p")
.data([4, 8, 15, 16, 23, 42])
.text(function(d) { return "I'm number " + d + "!"; });
//Enter
p.enter().append("p")
.text(function(d) { return "I'm number " + d + "!"; })
.style("color", function(d, i) {
return i % 2 ? "#000" : "#eee";
});
但是,一旦我嘗試添加SVG元素,我仍然會遇到同樣的錯誤。
似乎應該只是一個語法錯誤或什麼的,但我已經通過代碼5萬億次,並且找不到任何東西。
任何幫助是非常感謝,並感謝您事先爲您的時間。
艾薩克
非常感謝!擺脫我的錯誤,並且非常有意義。你已經救了我兩次奧爾森先生! – Cabbibo 2012-07-26 19:16:25
@IsaacCohen沒問題。如果此問題沒有其他問題,請接受答案。 – 2012-07-26 19:22:51
對不起,花了這麼長時間,試圖接受它,但它不會讓我一個小時然後分心,忘了它。我很抱歉! – Cabbibo 2012-08-13 15:46:18