В 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