在vis javascript库中,如何从节点Id获取节点?

时间:2015-08-06 21:13:36

标签: javascript vis.js

所以我创建这样的节点......

var nodes = new vis.DataSet([
    {id: 1, label: 'Peter'},
    {id: 2, label: 'John'},
    {id: 3, label: 'Sally'},
]);

然后稍后在一个事件处理程序中点击一个节点后,我得到了我点击的节点的id。如何从其id获取节点对象?

3 个答案:

答案 0 :(得分:14)

我实际上在这里找到了文档; http://visjs.org/docs/data/dataset.html

node = nodes.get(nodeId);

答案 1 :(得分:4)

我无法获得对节点对象的引用。在Network.body

中发现它
 network.on('click', function (properties) {
            var nodeID = properties.nodes[0];
            if (nodeID) {
                var clickedNode = this.body.nodes[nodeID];
                console.log('clicked node:', clickedNode.options.label);
                console.log('pointer', properties.pointer);
            }
        });

答案 2 :(得分:0)

我正在使用自己的函数来获取所有节点对象,但是您需要将'network'变量设置为全局变量。例如:

function getNode(nodeId){
     var nodeObj= network.body.data.nodes._data[nodeId];
     return nodeObj; //nodeObj.label to get label 
}