【发布时间】:2014-03-13 21:11:38
【问题描述】:
我有一个看起来像这样的对象:
data = {
questions: [
value: "Question 1", answers: [ {value:"answer1"}, {value:"answer2"} ],
value: "Question 2", answers: [ {value:"answer1"}, {value:"answer2"} ]
]
}
(这是简化的 - 答案有一个计数,将使用条形图显示。不过,我想我知道一旦我到达那里该怎么做。)
我遇到的问题是动态(因为数据经常更改)创建 HTML 结构,它应该看起来像这样:
<div class="question">
Question 1
<div class="answer">Answer 1</div>
<div class="answer">Answer 2</div>
</div>
<div class="question">
Question 2
<div class="answer">Answer 1</div>
<div class="answer">Answer 2</div>
</div>
我可以让 D3 创建问题 div(带有class="question" 的那些),并为此输入文本(即“问题 1”等),但我不知道如何获得 D3为答案创建一个子 div(即带有 class="answer" 的那些)。
这是我现在拥有的:
var questions_chart = d3.select('#survey-questions')
.selectAll("div")
.data(data.questions);
questions_chart.transition()
.text(function(d) { return d.value; });
questions_chart.enter().append("div")
.text(function(d) { return d.value; })
.attr("class", "question rounded")
questions_chart.exit().remove();
基本上,我如何嵌套 D3 附加项,以便我可以在 div 中为该问题的每个答案嵌套 divs?
【问题讨论】:
标签: javascript html d3.js