Javascript D3单击返回空属性的事件

Javascript D3单击返回空属性的事件,javascript,d3.js,svg,Javascript,D3.js,Svg,我正在使用D3V4并试图获取被单击对象的ID。见鬼,我很想看到返回的任何属性值(d、fill、class等)。相反,无论属性是什么,我都返回null。代码如下 d3.json("0267_02_combine.json", function(json) { var features = json.features; var path = d3.geoPath() .projection(projection.fitExtent([[0, 0], [w,

我正在使用D3V4并试图获取被单击对象的ID。见鬼,我很想看到返回的任何属性值(d、fill、class等)。相反,无论属性是什么,我都返回null。代码如下

    d3.json("0267_02_combine.json", function(json) {
    var features = json.features;

    var path = d3.geoPath()
        .projection(projection.fitExtent([[0, 0], [w, h]], json));

    svg.selectAll(".room")
        .data(json)
    .enter().append("path")
        .attr("class", "room")
        .attr("d", path)
        .attr("fill","lightblue")
        .attr("id", function(d){                
            return d.properties.loc;
        });

    svg.on("click", function() {
        console.log(d3.select(this)); //I see stuff!  Yay!
        console.log(d3.select(this).attr("fill")); //returns null
        console.log(d3.select(this).attr("id")); //returns null
        console.log(d3.select(this).attr("class")); //returns null

        var coords = d3.mouse(this);
        console.log(coords); //returns SVG coordinates
        console.log(projection.invert(d3.mouse(this))); //returns lat/lon

    })

});

是否确定要将单击处理程序附加到的选定元素具有填充、类或id

尝试将单击处理程序添加到路径

d3.json(“0267_02_combine.json”),函数(json){
var features=json.features;
var path=d3.geoPath()
.projection(projection.fittent([[0,0],[w,h]],json));
var path=svg.selectAll(“.room”)
.data(json)
.enter().append(“路径”)
.attr(“班级”、“房间”)
.attr(“d”,路径)
.attr(“填充”、“浅蓝色”)
.attr(“id”,函数(d){
返回d.properties.loc;
});
打开(“单击”,函数(){
console.log(d3.select(this));//我看到东西了!耶!
console.log(d3.select(this.attr(“fill”);//返回null
console.log(d3.select(this.attr(“id”);//返回null
console.log(d3.select(this.attr(“class”));//返回null
var coords=d3.鼠标(此);
console.log(coords);//返回SVG坐标
console.log(projection.invert(d3.mouse(this));//返回lat/lon
})
});

添加部分或全部0267\u 02\u combine.json请将“打开”(“单击”)移动到修复路径-谢谢!!