DOM querySelectorAll - идентификатор элемента не начинается с - PullRequest
0 голосов
/ 17 мая 2019

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

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

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

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

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

1 Ответ

0 голосов
/ 17 мая 2019

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

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

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

...