我对this问题提出了一个后续问题,我已经太仓促地关闭了。
我如何/在哪里放置.exit()
或.transition()
的答案?在我的原始代码中,我将主图表保存在变量(questions_chart
)中,因此我可以说questions_chart.exit().remove()
之类的内容。但是,如果我将.exit().remove()
放在.text()
(彼得答案的代码中的最后一行)之后,我会收到错误消息object array has no method 'exit'
答案 0 :(得分:1)
我没有对此进行过测试,但会给它一个镜头......你需要保留变量绑定数据......就像这样:
var divs = d3.select("body").selectAll("div")
.data(data.questions);
divs
.enter().append("div") // this creates the question divs
.text(function(d) { return d.value; })
.selectAll("div")
.data(function(d) { return d.answers; })
.enter().append("div") // this creates the nested answer divs
.text(function(d) { return d.value; });
divs.exit().remove();
我假设您不需要仅删除作为答案的div。希望这会有所帮助。
更新:尝试处理问题和答案......
var divs = d3.select("body").selectAll("div")
.data(data.questions);
var questionDivs = divs
.enter().append("div") // this creates the question divs
.text(function(d) { return d.value; });
divs.exit().remove();
var answerDivs = questionDivs
.selectAll("div")
.data(function(d) { return d.answers; });
answerDivs
.enter().append("div") // this creates the nested answer divs
.text(function(d) { return d.value; });
answerDivs.exit().remove();