我使用D3,当我将鼠标悬停在某个节点上时,我希望显示一个文本框,其中会写入所有节点属性。我已经制作了一个文本框,我能够将我知道的属性写入该文本框:
function onHover(){
d3.selectAll("#nodeAttributes")
.text(function() { return (d.type); }) //random attribute i know
;
}
这是在鼠标悬停'在节点上。但是如果我不知道节点有什么属性呢?如何遍历所有属性并将所有属性写入文本框。我的数据与此类似:
nodes: [
{
"type": "o",
"name": "fred",
"age": "16",
"class": "maths",
.
.
.
.
},
我希望输出的文字看起来像:
type: o
name: fred
age: 16
class: maths
我不确定如何遍历所选节点的每个属性(d)
提前致谢
答案 0 :(得分:2)
您可以使用以下代码迭代对象:
function onHover() {
d3.selectAll('#nodeAttributes').html(function (d) {
var str = '';
for (var key in d) {
str += key + ': ' + d[key] + '<br/>'
}
return str;
}
);
}