在d3.js中重新添加已删除的元素

时间:2013-08-22 00:58:03

标签: javascript d3.js

  

请注意,目前没有专门的API可以将删除的元素添加回文档;但是,您可以将函数传递给selection.append或selection.insert以重新添加元素。

https://github.com/mbostock/d3/wiki/Selections

传递函数是什么意思?我不确定如何实施这个。我尝试传递一个函数,将删除的div附加回父级,但是没有用。有什么想法吗?

这是d3中的一个相对较新的功能。

1 个答案:

答案 0 :(得分:4)

a function that returns the DOM element to append

所以你可以简单地做一些事情:

d3.select("body").append(function() {
    return document.createElement("div");
});

而不是简单地使用字符串名称

d3.select("body").append("div");

当您使用d3选择器时,请记住它们不是单个元素。他们是一组群体。因此,如果你说:

var divs = d3.select("div").remove(); // actually a multidimensional array
var firstElement = divs[0][0]; // this can be appended by returning it

Mike的相关文字是:One nuance is that selections are grouped: rather than a one-dimensional array, each selection is an array of arrays of elements

这是一个简单的工作fiddle to show a very basic example.