Javascript D3je:如何选择具有特定数据字段特定值的所有数据点
我有一个D3js热图,它是使用代码生成的,并在单击事件时作出反应: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",
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事件处理程序函数表示不同的对象