d3.js how to dynamically add nodes to a tree

妖精的绣舞 提交于 2019-11-27 17:18:31

I was able to dynamically add nodes by adding the following code in the toggle function:

$.getJSON(addthese.json, function(addTheseJSON) {
    var newnodes = tree.nodes(addTheseJSON.children).reverse();
    d.children = newnodes[0];
    update(d);
});

Notes: I am using jQuery to retrieve the json file

I'm new to D3, but this raw code might be helpful. You can create a JSON object and push it into the tree/link. Then it's just a matter of redrawing the tree.

function createTreeNode(source){

var current_node = tree.nodes(source);
var myJSONObject = {"name": "new Node","children": []}; 

if(current_node[0]._children!=null){
current_node[0]._children.push(myJSONObject);
console.log(current_node[0]._children);
source.children = source._children;
source._children = null;
}

else if(current_node[0].children!=null && current_node[0]._children!=null){
current_node[0].children.push(myJSONObject);
console.log(current_node[0].children);
}

else{
current_node[0].children=[]
current_node[0].children.push(myJSONObject);
console.log(current_node[0].children);
}

tree.links(current_node).push(current_node[current_node.length-1]);
navigate_tree(source);}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!