DOM querySelectorAll - 元素 ID 不是以

DOM querySelectorAll - element ID not starting with

在一个 HTML 文档中,我有一个大型内联 SVG 对象,其中的组带有各种 ID(或 none)。我想找到除 ID 以字母序列 l0pzlol1pzlol2pzlo 开头的组之外的所有组。仅查找这些 ID 的任务很简单

element.querySelectorAll("[id^=l0pzlo_],[id^=l1pzlo_],[id^=l2pzlo_]")

成功了。但是,我不知道如何只获取那些 ID DO NOT 以上面给出的三个前缀中的任何一个开头的元素。我尝试以各种不同的方式使用 :not,例如

element.querySelectorAll(:not('[(id^=l0pzlo)]'))";

但似乎没有什么是浏览器喜欢的。我该怎么做?

我认为在这里留下我自己的答案比删除问题更有用

element.querySelectorAll('*:not([id^=l0pzlo]):not([id^=l1pzlo]):not([id^=l2pzlo])');

有效。将其视为以 non-greedy 方式执行过滤任务。首先你得到了所有的东西,然后通过一个或多个 :nots

的序列逐步过滤掉你不需要的东西