2012-12-28 145 views
3

我正在使用d3js向页面添加一系列按钮以形成控制面板。在每个按钮中,我想遍历一些子元素,以在按钮内形成一个无序列表(长期来看,这将变成一个下拉样式和其他骗局)。在d3.js中迭代数组元素以添加到按钮

下面的代码示例显然是错误的。一个人不会简单地走入魔咒,他们也不会简单地在追加的中间放置一个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]); 
       } 
    }) 

回答

8

而不是循环,使用d3的选择。东西沿线

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

这工作很好,谢谢。 – preinheimer