如何通过点击功能获取D3中的所有功能属性? 例如,我们如何获得' AREA'和' PERIMETER'这个地图的所有省份:GeoJson map of Colombia,点击一个省?
以下代码不起作用。我看到'属性'未定义。
function clicked(d) {
var polys= effectLayer.selectAll("path");
var x;
var txt;
for (x in polys) {
//show this:
txt += polys[x].properties.AREA + " ";
}
alert(txt );
}
答案 0 :(得分:2)
你错误地选择了一个基准面。您无法访问以下选项:
polys[x].properties.AREA
所以,既然您想要的是基准,请使用each
:
var txt = "";
var polys= mapLayer.selectAll("path").each(function(e){
txt += e.properties.AREA + " "
});
这是更新的bl.ocks,请检查控制台:https://bl.ocks.org/GerardoFurtado/bb29d8d5b984da7fc8079c94cce9423c/e9963b96e01b2ecab5215ecf31c7d821c6b54daf