我想用cytoscape.js选择具有一定宽度范围的节点,但无法正常工作。
在documentation中,有一个有关选择具有一定重量和高度的节点的示例:
// 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'
,并尝试将较小的宽度调整为最小宽度。有更好的方法吗?
如果有人可以阐明这一点,我们将非常感谢。
答案 0 :(得分:0)
我相信您可以通过两种不同的方式来做到这一点:
选项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");