这很好用:
cy.filter( “节点[名= 'KRAS']”)。选择()
我如何做以下事情? (在伪代码中,%in%[如果它存在]将测试集合成员资格):
cy.filter(“node [%% in%['KRAS','TP53','PDGFRA']])。select()
谢谢!
答案 0 :(得分:4)
正如您所怀疑的那样,最好批处理导致渲染的调用(如eles.select()
) - 它会将样式表应用程序和通知批处理到渲染器以使事情更快。
至于你的选择器,请记住,将选择器连接在一起是一个逻辑AND,用逗号分隔选择器是一个逻辑OR。所以,你的结果是:
cy.filter('node[foo = "bar"], node[foo = "baz"], node[foo = "bat"]').select();
如果图表是静态的或不经常更改,您也可以执行一些缓存。通过分解每个选择器的公共部分,整体过滤变得更便宜 - 即在你的情况下,如果它们都是节点,只需过滤每个特定选择器的节点集:
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();
请注意在这种情况下第二次filter()
调用会更快,因为它只在图表的子集上运行。