/ / d3.js équivalent à $ (this) - jquery, d3.js

d3.js équivalent à $ (this) - jquery, d3.js

Je souhaite modifier l'état d'un nœud de textequand on clique dessus, mais apparemment je n'arrive pas à y accéder correctement. Lorsque je clique, rien ne se passe (sauf si j'utilise le sélecteur jquery et que toutes les commandes ne fonctionnent pas). Ma question est donc la suivante: quel est le d3.js équivalent à $ (this)?

var buttons = svg.selectAll(".button");
buttons.on("click",function(d){
var target = $(this).attr("target");
var visible  = $(this).attr("visible");
if(visible==="1"){
svg.selectAll(".bar."+target)
.transition()
.duration(500)
.ease("elastic")
.style("display","none");
$(this).attr("visible","0")
.style("text-decoration","line-through");
}else{
svg.selectAll(".bar."+target)
.transition()
.duration(500)
.ease("elastic")
.style("display","inline");
$(this).attr("visible","1");
$(this).removeClass("active");
}
});

Réponses:

0 pour la réponse № 1

Il s'avère d3.select(this) est la bonne réponse.

Le code est maintenant:

var buttons = svg.selectAll(".button");
buttons.on("click",function(d){
var target = $(this).attr("target");
var visible  = $(this).attr("visible");
if(visible==="1"){
svg.selectAll(".bar."+target).transition().duration(500).ease("elastic").style("display","none");
d3.select(this).attr("visible","0").style("text-decoration","line-through");


}else{
svg.selectAll(".bar."+target).transition().duration(500).ease("elastic").style("display","inline");
d3.select(this).attr("visible","1").style("text-decoration","");
}
});