最近,我一直在使用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}}之后。这不是真的吗?
提前多多感谢!我只是想考虑一下。
答案 0 :(得分:1)
它不起作用的原因是因为当它不再存在时,你试图附加到某个东西(.tooltip
)。在链接时遵循代码。首先,您选择.tooltip
,删除它们,然后尝试将div
附加到.tooltip
,但.tooltip
不再存在。
另一方面,这两个班轮是有效的,因为你将.tooltip
附加到身体上, 存在。
希望这有帮助。