迭代d3.js中的数组元素以添加到按钮

时间:2012-12-28 16:51:03

标签: javascript d3.js

我正在使用d3js向页面添加一系列按钮以形成控制面板。在每个按钮中,我想迭代一些子元素,在按钮内形成一个无序列表(从长期来看,这将变成一个带有样式和其他诡计的下拉列表)。

下面的代码示例显然是错误的。一个人不是简单地走进mordor,也不是简单地在追加中间放一个for循环。我无法翻开我的大脑来记住如何完成这件事。 drilldownValues是一个数组,其中包含我要添加为列表项的所有元素。我觉得我是一个.each或远离尤里卡时刻的东西,但不能使它适合。

总之,以下是错误的,我该如何做对?

    .each(function(d,i) {
        var drilldownValues = d.drilldown;
        d3.select(this)
            .append('ul')
                for (var k = 0; k < drilldownValues.length; k++)
                {
                    .append('li')
                    .text(drilldownValues[k]);
                }
    })

1 个答案:

答案 0 :(得分:8)

使用d3的选择而不是循环。

的内容
d3.select(this).append('ul')
  .selectAll('li').data(d.drilldown).enter()
  .append('li').text(function(d) { return d; })