DOM querySelectorAll - идентификатор элемента не начинается с

В HTML-документе у меня есть большой встроенный объект SVG с группами, имеющими различные идентификаторы (или их вообще нет). Я хочу найти все группы, кроме тех, чьи идентификаторы начинаются с буквенных последовательностей l0pzlo , l1pzlo и l2pzlo . Задача найти только эти идентификаторы проста

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

делает трюк. Однако я не могу понять, как получить только те элементы, чьи идентификаторы НЕ начинаются с любого из трех префиксов, указанных выше. Я пытался использовать :not разными способами, например

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

но ничто, похоже, не нравится браузеру. Как я могу это сделать?

Всего 1 ответ


Я думаю, что было бы более полезно оставить здесь свой ответ, а не просто удалить вопрос

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

работает. Думайте об этом как о задаче фильтрации не жадным способом. Сначала вы получаете абсолютно все, а затем постепенно отфильтровываете то, что вам не нужно, с последовательностью из одного или нескольких :not s


Есть идеи?

10000