我有一个输入选择,其中包含两个我想要添加到svg容器的元素,以便维护这两个元素的顺序。我尝试过使用insert:first-child selector就像这样
var newlayers = layer.enter();
newlayers.insert("g",":first-child")
由于使用了:first-child选择器,enter选择中的第二个元素最终成为插入后svg容器中的第一个元素。我该如何避免这种行为?
答案 0 :(得分:0)
好的,我可以在以这种方式创建插入选择后使用.sort重新排序元素:
var newlayers = layer.enter();
newlayers.insert("g",":first-child")
.sort(function(a,b){ return b-a; });
这使得数据的排序保持完整,同时仅重新排序DOM中的插入元素。我沿着重新排序在enter()本身返回的数据的路线走下去,这开启了一大堆其他问题。