Javascript D3je:如何选择具有特定数据字段特定值的所有数据点

Javascript D3je:如何选择具有特定数据字段特定值的所有数据点,javascript,d3.js,Javascript,D3.js,我有一个D3js热图,它是使用代码生成的,并在单击事件时作出反应: var heatMap = svg.selectAll(".hour") .data(availPlain) // abriged... .on("click", function (d, i) { // toggle special class for clicked item d3.select(this).classed("selectedClass",

我有一个D3js热图,它是使用代码生成的,并在单击事件时作出反应:

  var heatMap = svg.selectAll(".hour")
    .data(availPlain)

   // abriged...

    .on("click", function (d, i) {
        // toggle special class for clicked item
        d3.select(this).classed("selectedClass",
            d3.select(this).classed("selectedClass") ? false : true);
        var isShown=d3.select(this).classed("selectedClass");              
    });
单击处理程序时传入的参数d的外观如下所示:

 {"g":"16","station":"91","rid":"360"} 
它本质上是availPlain数组的元素或用于生成图形的对象。 但是,我想迭代所有具有相同g值的d3元素,并为它们切换类。我很确定应该使用select/selectAll的一些后续操作,但是使用文档理解实际代码有点困难。那么,我如何对所有具有数据条件data.g==something的项进行分类呢?

得出以下结论:

.on("click", function (d, i) {
        heatMap.filter(function(dta){return (dta.g==d.g);})
        .classed("selectedClass", 
            d3.select(this).classed("selectedClass") ? false : true);

    });
请注意,这个in.classed和in事件处理程序函数表示不同的对象