如何使用d3js作为强制布局从json中的子节点获取父节点?

时间:2015-09-07 11:17:20

标签: d3.js parent-child geometry force-layout

我使用d3js显示地图并使用Force Layout作为圆圈设置位置。

我有一个国家/地区的地图,当我点击任何特定的状态时,我会删除我的svg并通过从json获取d(子记录)再次构建。

现在的问题是,当我点击国家地图的后退按钮时,我需要回来设置父节点,并且需要再次设置状态链接和节点。

我是否需要使用for循环检查json中的所有记录?

我发现有一个解决方案可以将最后一个父节点存储在数组中并使用它来返回,但我不知道如何设置父节点,因为在click事件中它总是获得点击功能的子记录。

那么如何获取点击事件的父记录?

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

最好将数据存储到数组中,但不适合那些拥有大数据的数据。

正如您所说,在点击事件中您获得所选状态的新记录,因此最好将记录存储在数组中作为第二个关键记录,我的意思是

array[0] = "Parent record"
array[1] = "Child Record"
array[2] = "Sub Child Record"

所以通过这个你可以获得现场记录,当你回来的时候不需要循环json就像你提到的那样从国家到国家,而不仅仅是重新加载页面

document.location.reload()

因此您的数组将使用空值进行初始化,以便您可以通过转到不同状态来存储新值,无需从国家/地区获取记录并设置,因为国家/地区将是您的主页。