Показать сообщение отдельно
  #1 (permalink)  
Старый 09.08.2017, 17:46
Новичок на форуме
Отправить личное сообщение для kazanova84 Посмотреть профиль Найти все сообщения от kazanova84
 
Регистрация: 09.08.2017
Сообщений: 7

find включая self со сложным селектором
Всем доброго времени суток!

Воткнулся в тупик, не могу решить, как лучше сделать. Есть произвольный jquery-селектор, хранящийся в переменной. В документ добавляется некий объект. В этом объекте (контексте) надо найти все элементы, удовлетворяющие селектору, включая сам объект. Иными словами, нужен метод, такой же как find, только включающий в зону поиска исходный объект (контекст), а не только его дочерние элементы.

Поиск по интернету дал такое решение:
var target = $(context).find(selector).addBack(selector);

Но оно не работает для сложных селекторов. Например, если
selector = "#container a";
а context вот такой:
<div id="container"><a href="">link</a></div>

то решение не сработает, на выходе будет пусто. Почему - понять не сложно. find ищет только среди дочерних к context элементов, а addBack берет исходный элемент (context) и фильтрует по селектору, не залезая вглубь дерева. Как элегантно решить - не могу сообразить Структуру документа менять нельзя (т.е. обернуть context в дополнительный div не катит). Взять родительский элемент - тоже, т.к. а) его может не быть, если context = document; б) можно найти лишнее, не относящееся к context. Помогите, плз. Вроде простая задача, а простого решения не вижу
Ответить с цитированием