CytoscapeJS - 显示节点邻域?

CytoscapeJS - show node neighborhood?

我有一个 JSON 格式的数据集,其中包含有关我用于在 cytoscapeJS 中生成网络图的节点和边的信息。 JSON 数据包含 nodes 的 id、value、shape、color 和 visibleDisplay('element' 或 'none')属性以及 id、source、target 和 的标签。当 cy 容器首次初始化时,我的样式表使用 'visibleDisplay' 属性 来根据需要显示/隐藏节点。

我想允许用户使用 "Show neighbourhood" 选项取消隐藏节点。我修改了我的旧代码以使用集合,但它仍然不起作用:

function showNeighbourhood() {
   var eleID;
   var neighbourArray= new Array();

   var neighbours= cy.collection(); // collection

   cy.nodes().forEach(function( ele ) {
       if(ele.selected()) { // get the currently selected node.
          eleID= ele.id();
         }
      });

   // Find its connected neighbours.
   cy.edges().forEach(function( edg ) {
       if(edg.data('source') === eleID) {
          neighbourArray[neighbourArray.length]= edg.data('target');
         }
       else if(edg.data('target') === eleID) {
          neighbourArray[neighbourArray.length]= edg.data('source');
         }
      });

   // Add the array to the collection.
   neighbours.add(neighbourArray);

  // Show neighbourhood, using the collection.
   neighbours.show();
  }

关于如何使这项工作有什么建议吗? 我不能在集合上使用 show() 方法使所需的节点可见吗?

您只需使用 node.neighborhood(),例如cy.$(':selected').neighborhood().removeClass('hidden').