将 class 个路径元素与数据集进行比较

compare class of path elements to a dataset

我是 d3 的新手,我想用 d3 数据图制作等值线图,所以如果必须将路径的 classes 与我的数据集进行比较。到目前为止,我确实设法获得了路径的

html

  <script src="//cdnjs.cloudflare.com/ajax/libs/d3/3.5.3/d3.min.js"</script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/topojson/1.6.9/topojson.min.js"></script>
  <script src="/d3map/datamaps.world.min.js"></script>
  <div id="container" style="position: relative; width: 500px; height: 300px;"></div>
  <script src="d3map.js"></script>

js代码

var map = new Datamap({element: document.getElementById('container'),
  })
  var country = d3.selectAll("path")

Country 是一个包含 177 个元素的数组 country 中的一个元素具有这种形式:

<path d="bunch of numbers" class="datamaps-subunit AFG" style="etc"></path>

我想看看 class 中的国家代码(例如 AFG)是否与我的数据集中的国家代码匹配。

Country.class 给出未定义

我可能遗漏了一些非常明显的东西

这是一个例子 fiddle:https://jsfiddle.net/g2v5sgmz/

您可以使用 filter 方法过滤数组中的特定分类元素,如下所示:

var country = d3.selectAll("path");

var afg = country.filter(function(d,i){
   if( d3.select(this).classed("AFG") ){
        return d3.select(this);
   }
})