на самом деле есть достаточно хорошее объяснение в официальных документах здесь , но, если честно, я тоже сначала боролся с этой функцией:
В принципе, вы можете отфильтровать специфику c Коллекция, которую вы хотите найти, просто вставив фильтр запроса. Поэтому, если вы хотите отфильтровать все узлы, вы можете использовать это:
cy.nodes(filterQuery);
Если вы хотите отфильтровать все элементы, просто вызовите это:
cy.elements(filterQuery);
Если вы хотите сделать это просто, вы можете использовать эту короткую версию (сокращение от cy.filter(...)
):
cy.$(filterQuery);
Сам запрос фильтра не так сложен, вы можете сделать это (при условии, что сначала у вас есть узел с идентификатором) "или такой атрибут, как nodeColor" # 2763c4 "):
cy.$('[id != "first"]');
cy.$('[id = "first"]');
cy.$('[nodeColor = "#2763c4"]');
cy.$('[weight > 50]');
Кроме того, вы можете указать целевую коллекцию в запросе фильтра следующим образом:
cy.$('node[id != "first"]');
Наконец, если вам нужно Сложная фильтрация, вы можете использовать функцию для применения этой логики c к фильтру, для этого просто сделайте это:
cy.$(function(element, i){
return element.isNode() && element.data('weight') > 50;
});