D3.js不创建元素的对象数组

时间:2015-11-19 21:37:33

标签: javascript d3.js

我有一组像这样的对象:

var dataObj = [{stuff:"thing"}, {other:"something"}, {you:"get"}, {the:"idea"}];

我正试图在其中附加一个带有键的div作为每个对象的文本:

myElement
 .selectAll("div.myClass")
 .data([dataObj])
 .enter()
 .append("div")
 .attr('class', 'myClass')
 .text(function(d, i) { 
    return Object.keys(d)[i];
});

但是这样在div中只创建了一个myElement元素,如下所示:

<div id='myElement'><div class='myClass'>stuff</div></div>

我错过了什么?

我也试过

myElement
 .selectAll("div.myClass")
 .data(dataObj)
 .enter()
 .append("div")
 .attr('class', 'myClass')
 .text(function(d, i) {
    console.log("This never shows"); 
    return Object.keys(d)[0];
});

无济于事。

1 个答案:

答案 0 :(得分:1)

dataObj已经是一个数组。所以看起来你不需要放入数组

myElement
.selectAll("div.myClass")
.data(dataObj)
.enter()
.append("div")
.attr('class', 'myClass')
.text(function(d, i) { 
 return Object.keys(d)[i];
});