我有一个画圆的函数(canvasCPI和canvasGDP是我的svgs):
var CPIforecircles = canvasCPI.append("g");
var GDPforecircles = canvasGDP.append("g");
function drawGDPForecastCircles(theNum){
GDPforecircles.append("circle")
.attr("r", 3)
.attr("class", "circleGDPFore")
.style("display", null)
.attr("transform", "translate(" + xScaleQuarterly(dataForecast[theNum].date) + "," + yScaleGDP(dataForecast[theNum].GDPforecast) + ")");
}
function drawCPIForecastCircles(theNum){
CPIforecircles.append("circle")
.attr("r", 3)
.attr("class", "circleCPIFore")
.style("display", null)
.attr("transform", "translate(" + xScaleQuarterly(dataForecast[theNum].date) + "," + yScaleCPI(dataForecast[theNum].CPIforecast) + ")");
}
然后通过我的脚本调用这个函数来画越来越多的圆圈:
function generateCirclesFore(indexNum){
for (var i=indexNum; i<counterFore+1; i++){
drawGDPForecastCircles(i);
drawCPIForecastCircles(i);
}
}
最终我有两个组元素(CPIforecircles 和 GDPforecircles),标签内有很多圆圈,但我如何将这些圆圈选为数组,然后将显示样式应用于 none (.style("display", "none")) 仅到该数组中的某些圆圈?
我决定把我的评论作为一个答案,这样就不会正式没有答案。另外,我相信答案是准确的。所以,这里是:
selectAll(".circleCPIFore")
.filter(function(d) { d.someProp == someCriteria;})
.style("display","none");