したがって、非常に単純なd3チュートリアルに従うときに問題が発生します。基本的に、現在のsvgサークル要素にデータをバインドしてenter.appendを呼び出すことにより、SVGサークル要素を追加しようとしています。以下に示すように:
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]、[objectSVGCircleElement]にはメソッド'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兆回調べても、何も見つかりません。
どんな助けでも大歓迎です、そしてあなたの時間を前もって感謝します。
アイザック