Допустим, у меня есть некий элемент node. Нужно, не прибегая к циклам, childNodes и matchesSelector найти потомков первого уровня, соответствующих какому-нибудь селектору, например 'div.classname1.classname2[title$=«bla»]'. Одно из решений следующее:
node.querySelectorAll('#node1 > div.classname1.classname2[title$="bla"]'); //при условии, что node.id==="node1"
Очевидно, это помогает только в случае, если селектор node (в данном случае "#node1") известен и уникален.
Придумал такой костыль:
var id = node.dataset.randomId = Math.random();
node.querySelectorAll('[data-random-id="'+id+'"] > div.classname1.classname2[title$="bla"]');
Но добавлять лишние атрибуты элементам направо и налево — не очень хорошее решение.
Запись
node.querySelectorAll('> div.classname1.classname2[title$="bla"]');
выдаёт синтаксическую ошибку
Собсно, как получить детей элемента, соответствующих селектору с помощью querySelectorAll?
Может быть есть какой-нибудь селектор, выбирающий текущий элемент, что-то типа
Andrei?