D3 访问 Json 对象中的数组到属性
D3 Accessing array in Json object to attribute
在我的强制布局数据中,我有
"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 的值作为数组获取。我怎样才能做到这一点?
你到底想达到什么目的?
在您的节点上添加一个属性来存储 isListedIn 列表只是为了稍后检索它并没有什么意义,因为 d3 已经为您做了这件事。如果你想获取 DOM 元素的数据,你可以使用 d3.select('#el').data()[0]['isListedIn']
或 d3.select('#el').each(function(d) { console.log(d.isListedIn); });
取决于你想用它做什么。
在我的强制布局数据中,我有
"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 的值作为数组获取。我怎样才能做到这一点?
你到底想达到什么目的?
在您的节点上添加一个属性来存储 isListedIn 列表只是为了稍后检索它并没有什么意义,因为 d3 已经为您做了这件事。如果你想获取 DOM 元素的数据,你可以使用 d3.select('#el').data()[0]['isListedIn']
或 d3.select('#el').each(function(d) { console.log(d.isListedIn); });
取决于你想用它做什么。