首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在cytoscapejs中,如何从集合中获取元素样式?

在cytoscapejs中,如何从集合中获取元素样式?
EN

Stack Overflow用户
提问于 2021-08-07 02:47:15
回答 1查看 66关注 0票数 0

我的目标是获得元素的样式。

实际上,我的真正目标是从CytoscapeJS中读出图表,然后将其反馈到Cytoscape中。要做到这一点,我需要能够得到元素样式。

当我尝试获取每个元素的元素样式时,它会返回所有可能的样式:

例如:

代码语言:javascript
复制
const selectedNodeInMaster = cy.getElementById(getSelectedNodeId)
const nhood = selectedNodeInMaster.closedNeighborhood();
const foo = nhood.map((el) => {
    const foo = {data: el.data(), id: el.id(), style: el.style(), classes: el.classes()}
    console.log(foo)
    return foo
})

下面是上面代码的结果:

但是,如果我这样做:

代码语言:javascript
复制
cy.json({flatEles: true})

然后我可以在这个位置看到我需要的样式数据:

代码语言:javascript
复制
_private.elements[0]._private.style

如下所示:

EN

回答 1

Stack Overflow用户

发布于 2021-08-12 15:47:24

我认为cytoscape做得很好,因为如果你叫我节点样式,例如,如果你只设置了z索引,因为那个节点也有一种颜色,一种边框颜色,...即使它们是默认值。因此,如果您向我询问样式,我将返回该节点上的所有属性。

现在我们来解决您的问题,原因很明显,您不能在_private参数中使用值​​。

您需要样式对象属性的一个子集,而且您还知道这些属性是什么,因为您在cytoscape中插入数据之前设置了样式数据。然后,您可以将所有样式属性名称存储在一个数组中,然后告诉cytoscape只从节点返回该属性。

可以通过两种方式获取属性值:

  1. node.style(propertyName)
  2. const styleObj = node.style(); and then styleObj[propertyName];

我希望我已经理解了这个问题,也很好地理解了它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68689035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档