如何否定 Cytoscape.js 中的 class 选择器?

How to negate class selector in Cytoscape.js?

我想 select 所有没有 class "myclass" 的元素。我怎样才能在 Cytoscape.js 中做到这一点?

根据 http://js.cytoscape.org/#selectors/data,“[^name] 如果未定义指定的数据属性则匹配元素”,但是 class 不是数据属性而 ^.myclass 是不起作用,:not(.myclass).

也不起作用

错误是The selector :not(.myclass) is invalid

有没有办法否定classes?

如果你想得到否定的class选择器,你可以这样做:

cy.elements().not(cy.$('.yourClass'));

// in more detail
var allElements = cy.elements(); // get all elements
var negators = cy.$('.yourClass');  // get all elements with the class to negate
var result = allElements.not(negators); // gets the difference between the two collections

如果您真的想仅通过使用选择器来实现此目的,那么您可以向每个具有 myclass 的元素添加一个数据字段(这可以在添加 class 时完成),并且然后使用 [^myclass]