Je suis nouveau sur d3. J'ai quelque chose de défini comme ceci:
node = node.enter().append("circle")
.attr('id', function(d){ return d.id; })
.attr("class", "node")
.on('mouseover', mouseover_node)
.on("click", nodeClick);
Maintenant, dans la fonction nodeClick, je veux accéder à un nœud (ou cercle) avec un identifiant spécial. Je cherche quelque chose que je pourrais utiliser comme ceci:
for(var i=0;i<maxId;i++) {
d3.select(the node with id = i).do....
Est-ce que quelqu'un sait comment je peux faire ça?
Votre problème est que id
s et name
s doivent commencer par une lettre . Modifiez donc votre code pour ajouter une chaîne à chaque id
, par exemple.
.attr('id', function(d){ return 'name' + d.id; })
Ensuite, vous pouvez sélectionner un nœud donné en utilisant d3.select( '#name' + i )
. De les docs sur les sélections D3:
... vous pouvez sélectionner par tag ("div"), classe (".awesome"), identifiant unique ("#foo"), attribut ("[color = red]") ou confinement ("parent child") .