如何控制输入选择的插入顺序?

时间:2012-10-11 17:11:44

标签: javascript d3.js

我有一个输入选择,其中包含两个我想要添加到svg容器的元素,以便维护这两个元素的顺序。我尝试过使用insert:first-child selector就像这样

var newlayers = layer.enter();
newlayers.insert("g",":first-child")

由于使用了:first-child选择器,enter选择中的第二个元素最终成为插入后svg容器中的第一个元素。我该如何避免这种行为?

1 个答案:

答案 0 :(得分:0)

好的,我可以在以这种方式创建插入选择后使用.sort重新排序元素:

var newlayers = layer.enter();
newlayers.insert("g",":first-child")
.sort(function(a,b){ return b-a; });

这使得数据的排序保持完整,同时仅重新排序DOM中的插入元素。我沿着重新排序在enter()本身返回的数据的路线走下去,这开启了一大堆其他问题。