所以我的问题有两个。让我说我对 d3 和 javascript 很陌生,如果我的问题看起来很简单,请原谅我。
首先,我用我的数据创建一个数组,如下所示:
var data=[
{
"atomic_number": "1",
"name": "H",
"en": "2.2",
"type": "non-metal"
},
{
"atomic_number": "3",
"name": "Li",
"en": "1",
"type": "metal"
}
]
我还创建了一个 svg 画布:
<svg id =“画布”xmlns =“链接”版本=“1.1”>
所以我对 d3 执行以下操作:
var selection=canvas.selectAll("circle")
.data(data_var)
selection.enter().append("circle")
selection
.transition().duration(800)
.attr("id", d.name)
我的第一个问题是,通过 attr("id", d.name") 给我的数据数组中的每个元素一个 id 是否合法/可以?如果不是,我将如何给每个元素元素自己的ID?
我的第二个问题有两个部分:
a-假设我正确地为每个元素应用了一个 id,我以后如何访问所述元素?我可以只做 var my_var = d3.select("#id") 吗?因为我试过这样做,但似乎没有用。我是否必须以某种方式将其从我的数据数组中取出?
b-假设我的数据数组中的所有元素在屏幕上显示为圆圈。我该如何做到这一点,以便如果我单击其中一个,将调用一个将在该特定元素/圆上运行的函数?