我想用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");