使用cytoscape.js按属性范围选择元素



我想用cytoscape.js选择具有一定宽度范围的节点,但无法实现

在文档中,有一个关于选择特定重量和高度的节点的示例:

// get all nodes with weight more than 50 and height strictly less than 180
cy.elements("node[weight >= 50][height < 180]");

到目前为止,我已经尝试过:

// 1
cy.elements("node[width < 200]");
// 2
cy.filter("node[width < 200]");
// 3
{
selector:'node[width < 200]',
css: {
// do something
}
}

但以上都没有奏效。这些只是返回了一个空的节点集合。当我删除[]中的条件时,它运行良好。我错过了什么?

PS:
最终,我希望实现的是所有节点都具有相同的宽度,除非文本太长。现在,我正在为所有节点使用自动宽度'width':'label',并尝试将较小的节点调整为最小宽度。有更好的方法吗?

如果有人能阐明这一点,我真的很感激。

我相信你可以用两种不同的方式来实现:

选项A

cy.nodes().filter("node[width < 200]").filter(["node[height < 180]").style("your css property")

选项B

cy.nodes().filter(function( element, i ){
return element.data('width' < 200) && element.data('height' < 180)
}).style("your css property");

最新更新