d3.js selectAll().chaque sur svg chemin.. indéfinis?

Je suis de l'importation d'un svg (servi sous forme de contenu statique à partir du serveur) de cette manière,

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);

alors je suis en train de parcourir tous les chemins svg et faire quelque chose avec eux

    d3.selectAll("#somediv svg path").each(function(d, i) {
        console.log(this, d, i);
    });
}

ce que j'obtiens est à ce problème

  • i est de 1 à nombre de parcours, ce qui est correct.
  • d est undefined au lieu d'être le droit svg élément de chemin.
  • this est le svg élément du chemin, comme celui-ci

    <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>

Je m'attendais à d être la véritable svg chemin, pourquoi n'est-il pas?

EDIT:

Un peu d'un aperçu sur ce que je veux faire pourrait peut-être aider.

J'ai un svg avec un chemin d'accès pour chaque quartier de ma ville. Je veux faire de l'piecharts dans le centre de chaque chemin. Je n'ai pas les données, il sera utilisé pour la piecharts. Je veux faire une fonction mouseover sur le chemin, et ajouter un petit cercle rouge (que dans une prochaine étape va devenir le graphique), sur chaque chemin.

Quelle est la meilleure façon de le faire?

OriginalL'auteur nkint | 2013-03-07