我有一个数组["a", "b", "c", "d"]
,我在页面上构建了两个svg对象。首先是一个图表,在第二个svg中有这个图表的控件。两者都有元素绑定到数组中的相同数据。我想使用控制区域作为按钮,根据控件区域中的单击按钮激活图表元素。
如果我点击a
按钮,我会在其点击事件中收到索引,并希望通过用颜色突出显示a
图表元素。
首先,我以相同的方式制作图表元素然后按钮区域,如下所示:
elements = d3.select('g.elements')
所以,我有图表的elements
对象,以及来自click事件的索引,我希望我可以用d3方式从这个对象中获取相应的项目。
请告诉我如何从elements
获取具有特定索引的对象,以便我可以使用d3方法和属性处理它,而不仅仅是作为DOM元素?
答案 0 :(得分:1)
不完全清楚。你想这样做:
d3.select("elements").each(function(d,i) {
if(i == myIndex) {
//do stuff
}
})
这也可以使用filter / select来完成。
我的观点是d3.js方法是注释原始数据并再次绘制整个视图。因此,如果您的数据是[{id:"a"}, {id:"b"},...]
,那么当按下“a”时,您可以将对象更新为:{id:"a", pressed:true}
,然后根据新数据重新绘制两个svg对象(使“a”活动基于“压迫”的存在是真实的。