我正在使用d3创建一个地球仪。我想根据它们是否在一个名为“无代表”的数组中来更改国家/地区的填充颜色。但我无法改变填充颜色。请问我的语法错误了吗?
d3.json("world-countries.json", function(collection) {
feature = svg.selectAll("path")
.data(collection.features)
.enter().append("svg:path")
.attr("d", clip)
.attr("id", function(d) { return d.id; })
.on("mouseover", pathOver)
.on("mouseout", pathOut)
.on("click", click);
feature.append("svg:title")
.text(function(d) { return d.properties.name; });
feature.each(function(){
thisOne = $(this).attr('id');
for (var i=0; i<unrepresented.length; i++){
if ($(this).attr('id') == unrepresented[i]) {
thisOne.style("fill", "#000000");;
}
}
});
});
答案 0 :(得分:1)
thisOne
是代码中节点的ID - 您无法在其上设置样式。以下代码应该有效:
d3.select(this).style("fill", "#000000");