D3访问Json对象中的数组以进行属性

时间:2016-03-28 11:24:17

标签: arrays json d3.js attr

在我的力布局数据中我有

"nodes":[
    {"id":"0", "name":"A",
    "isListedIn":["USSDN","Canadian list"] 
    },

通常,我会将其绑定到D3选择,例如

d3.select(body).selectAll(".node").data(graph.nodes).enter()
    .append("image")
    .attr("name") function(d) return d.name) 
    .attr("isListedIn",function(d) return d.isListedIn)

我试图把它拿出去

 var listList=d3.select("#listList").append("ul")
        .data(listList)
        .enter()
        .append("li")
        .text(function(d){return d})  

但d.isListedIn无效。我试图做的是用户点击1节点 - >我可以将isListedIn的值作为数组获取。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

你到底想要达到什么目的?

添加一个属性来存储节点上的isListedIn列表只是为了稍后检索它是没有意义的,因为d3已经为你做了。如果您想获取DOM元素的数据,可以使用d3.select('#el').data()[0]['isListedIn']d3.select('#el').each(function(d) { console.log(d.isListedIn); });,具体取决于您要对其执行的操作。