如何通过索引从d3集合中获取项目?

时间:2014-02-24 20:09:03

标签: javascript d3.js

我有一个数组["a", "b", "c", "d"],我在页面上构建了两个svg对象。首先是一个图表,在第二个svg中有这个图表的控件。两者都有元素绑定到数组中的相同数据。我想使用控制区域作为按钮,根据控件区域中的单击按钮激活图表元素。

如果我点击a按钮,我会在其点击事件中收到索引,并希望通过用颜色突出显示a图表元素。 首先,我以相同的方式制作图表元素然后按钮区域,如下所示:

    elements = d3.select('g.elements')

所以,我有图表的elements对象,以及来自click事件的索引,我希望我可以用d3方式从这个对象中获取相应的项目。

请告诉我如何从elements获取具有特定索引的对象,以便我可以使用d3方法和属性处理它,而不仅仅是作为DOM元素?

1 个答案:

答案 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”活动基于“压迫”的存在是真实的。