この方法でsvg(サーバーから静的コンテンツとして提供される)をインポートしています
d3.xml("http://localhost:3000/mysvg.svg", "image/svg+xml", function(xml) {
var importedNode = document.importNode(xml.documentElement, true);
var mySvg = d3.select("#somediv").node().appendChild(importedNode);
次に、すべての svg パスを反復処理して、それらを使用して何かを実行しようとしています
d3.selectAll("#somediv svg path").each(function(d, i) {
console.log(this, d, i);
});
}
私が得ているのはこの問題です
i
は 1 からパスの数です。これは正しいです。d
undefined
正しい SVG パス要素ではありません。this
このようなsvgパス要素です<path id="m021" fill="#00AAFF" d="M225.438,312.609c-0.665-1.084-1.062-1.691-2.368-1.963c-0.582-0.121-1.686-0.271-2.265-0.069 c-0.507,0.174-0.637,0.649-1.431,0.368c-0.934-0.33-0.665-1.272-0.71-2.104c-0.597-0.021-1.18,0-1.733,0.262 ...etc" ></path>
私d
は本当の SVG パスであると思っていましたが、そうでないのはなぜですか?
編集:
私がやりたいことについての少しの洞察が役立つかもしれません。
私の町の地区ごとに 1 つのパスを持つ svg があります。各パスの中心にいくつかの円グラフを作成したいと思います。現在、データはありません。円グラフに使用されます。パス上でマウスオーバー機能を作成し、各パスに小さな赤い円 (将来のステップで円グラフになります) を追加したいと考えています。
これを行う最善の方法は何ですか?