用D3删除和添加div的最佳方法是什么?

时间:2013-12-28 05:25:29

标签: javascript jquery d3.js

最近,我一直在使用D3.js制作交互式地图。当我试图绕过D3的机制时,今天有一个谜,当我试图用D3创建一个交互式更新的div来显示更多信息作为工具提示。

基本上,当我在元素上click时,应该有一个div,其中包含更新的内容,并且根据现有元素有一个新位置。

首先我尝试了这个:

d3.select("body").selectAll(".tooltip").remove().append("div").attr("class", "tooltip");

它不起作用,但是这个: d3.select("body").selectAll(".tooltip").remove(); d3.select("body").append("div").attr("class", "tooltip").text("boa boa");

当我把它分成两行时,它起作用了。我假设链接方法将像D3一样在D3中工作,但在这种情况下它看起来不像它。那么在这种情况下我在这里错过了什么? 我假设,即使<div class = 'tooltip'></div>尚不存在,remove()除了append()之外什么也不会在div附加{{1}}之后。这不是真的吗?

提前多多感谢!我只是想考虑一下。

1 个答案:

答案 0 :(得分:1)

它不起作用的原因是因为当它不再存在时,你试图附加到某个东西(.tooltip)。在链接时遵循代码。首先,您选择.tooltip,删除它们,然后尝试将div附加到.tooltip,但.tooltip不再存在。

另一方面,这两个班轮是有效的,因为你将.tooltip附加到身体上, 存在。

希望这有帮助。