获取d3

时间:2018-04-17 08:40:23

标签: d3.js

如何通过点击功能获取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 );
}

1 个答案:

答案 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