/ / d3.js еквивалент на $ (this) - jquery, d3.js

d3.js еквивалентно на $ (това) - jquery, d3.js

Бих искал да променя състоянието на текстов възелкогато е натиснат, но очевидно не успявам да го достигна правилно. Когато щракнете, нищо не се случва (освен ако не използвам селектора на jquery, а не всички команди на работа). Така че въпросът ми е: какво е еквивалентът на d3.js на $ (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");
}
});

Отговори:

0 за отговор № 1

Оказва се d3.select(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");
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","");
}
});