这很好用:
cy.filter("node[name='KRAS']").select()
我将如何执行以下操作?(在伪代码中,其中 %in% [如果存在] 将测试集合成员资格):
cy.filter("node[name %in% ['KRAS', 'TP53', 'PDGFRA']]).select()
谢谢!
正如您所怀疑的那样,最好对导致呈现的调用进行批处理(如eles.select())——它将样式表应用程序和通知批处理到呈现器以加快处理速度。
至于您的选择器,请记住将选择器连接在一起是逻辑 AND,而用逗号分隔选择器是逻辑 OR。所以,你的结果是:
cy.filter('node[foo = "bar"], node[foo = "baz"], node[foo = "bat"]').select();
Run Code Online (Sandbox Code Playgroud)
如果图形是静态的或不经常变化的,你也可以做一些缓存。通过分解每个选择器的公共部分,整体过滤变得更便宜——即在你的情况下,如果它们都是节点,只需过滤每个特定选择器的节点集:
var nodes = cy.filter('node'); // a cached copy of nodes
// each time you want to filter
nodes.filter('[foo = "bar], [foo = "baz"], [foo = "bat"]').select();
Run Code Online (Sandbox Code Playgroud)
请注意filter()在这种情况下第二次调用将如何更快,因为它仅对图的一个子集进行操作。
| 归档时间: |
|
| 查看次数: |
3937 次 |
| 最近记录: |