在 cytoscape.js 中迭代连接的节点

Iterate connected nodes in cytoscape.js

我需要获取连接到给定节点的节点,并突出显示它们。 "components" 函数看起来不错,但是我的遍历失败了。组件集合显示大小为 1,并且只有原始节点突出显示。

cynode = cy.getElementById(idstr);
comps = cynode.components();    
for (i = 0; i < comps.length; i++) /* really there's only one component */
{
    comp = comps[i];
    alert(comp.size());   /* this always returns 1!! */
    comp.nodes().addClass('nodehlt');  /* only the original node gets highlighted */
}

来自文档:

eles.components() :获取连通分量,只考虑调用集合中的元素。返回一个集合数组,每个集合代表一个组件。

如果您考虑的一组元素只是一个节点,则永远只能有一个组件。

您需要获取整个图 (cy.elements.components()) 或您感兴趣的子图的组件。然后您需要在这些组件中找到包含以下节点的组件兴趣