![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
10.08.2017, 02:03
|
![Аватар для рони](https://javascript.ru/forum/image.php?u=7416&dateline=1372796129) |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,134
|
|
Белый шум,
твой вариант короче ![](https://javascript.ru/forum/images/smilies/smile.gif)
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
10.08.2017, 09:34
|
Новичок на форуме
|
|
Регистрация: 09.08.2017
Сообщений: 7
|
|
Вы просто добавляете в результаты поиска исходный контекст, а это неверно. Повторюсь, нужно искать по произвольному селектору, от context включительно и глубже
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
10.08.2017, 10:12
|
![Аватар для рони](https://javascript.ru/forum/image.php?u=7416&dateline=1372796129) |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,134
|
|
Сообщение от kazanova84
|
а это неверно
|
вы проверяли результат? это единственное решение для вашего случая, у Белый шум, короче код, у меня длиннее но алгоритм, один и тотже, найти все элементы по селелектору и отфильтровать(оставить) только те у кого предок context, затем к оставшимся элементам добавлется сам контекст.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
10.08.2017, 10:29
|
Новичок на форуме
|
|
Регистрация: 09.08.2017
Сообщений: 7
|
|
Сообщение от рони
|
вы проверяли результат?
|
Да, в примере выше результат содержит элемент <table> и два элемента <a>, а по селектору должен содержать только <a>.
Сообщение от рони
|
затем к оставшимся элементам добавлется сам контекст
|
Контекст может удовлетворять селектору (попадает в результат), а может и не удовлетворять - соответственно не попадает в результат. В данном коде он попадает в результат всегда принудительно
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
10.08.2017, 10:50
|
![Аватар для рони](https://javascript.ru/forum/image.php?u=7416&dateline=1372796129) |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,134
|
|
kazanova84,
более пас, вашу логику не осилил, всё что мог выше.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
10.08.2017, 10:55
|
![Аватар для Белый шум](https://javascript.ru/forum/image.php?u=18305&dateline=1501058309) |
Профессор
|
|
Регистрация: 19.01.2012
Сообщений: 505
|
|
kazanova84,
ну так уберите .addBack() в конце... Не?
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
10.08.2017, 12:40
|
Новичок на форуме
|
|
Регистрация: 09.08.2017
Сообщений: 7
|
|
Сообщение от Белый шум
|
ну так уберите .addBack() в конце... Не?
|
Не...
Немного переформулировал задачу и решил сам ![](https://javascript.ru/forum/images/smilies/smile.gif) Другими словами, постановка звучит так: найти по селектору элементы документа, которые являются самим контекстом или его дочерними элементами. Решил так
var $context = $('#context');
var selector = 'table a';
var res = $(selector).filter(function() {
return $context.is(this) || ($context.has(this).length > 0);
});
Единственный минус - то, что поиск идет вначале по всему документу, а потом применяется фильтр по контексту. Хорошо бы начинать поиск с контекста. Но тут нюанс: селектор описывает элемент в иерархии документа, а не контекста.
Всем спасибо за участие! ![Thanks](https://javascript.ru/forum/images/smilies/thank_you2.gif)
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
10.08.2017, 14:34
|
![Аватар для Белый шум](https://javascript.ru/forum/image.php?u=18305&dateline=1501058309) |
Профессор
|
|
Регистрация: 19.01.2012
Сообщений: 505
|
|
Сообщение от kazanova84
|
в примере выше результат содержит элемент <table> и два элемента <a>, а по селектору должен содержать только <a>.
|
Сообщение от kazanova84
|
Другими словами, постановка звучит так: найти по селектору элементы документа, которые являются самим контекстом или его дочерними элементами.
|
Из кода, конечно, понятно чего вы хотели, но сформулировать это на словах вы так и не смогли.
ADD: чтобы не искать по всему документу, можно так:
$context.parent().find(selector).filter(function() {
return $context.is(this) || ($context.has(this).length > 0);
});
ADD2: а, у вас же и документ может быть контекстом. Забыл.
Последний раз редактировалось Белый шум, 10.08.2017 в 15:03.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
10.08.2017, 15:08
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,800
|
|
А не скажите, в какой ситуации это может понадобиться?
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
10.08.2017, 18:02
|
Новичок на форуме
|
|
Регистрация: 09.08.2017
Сообщений: 7
|
|
Nexus,
Селекторы ссылаются на элементы, которые нужно неким образом обработать. Когда на страницу вставляется новый контент (ajax) надо этот контент обработать селекторами. Можно, конечно, и классы к обработанным цеплять, но это не очень удобно в контексте кода
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
jquery. Метод find |
Анатолий Саратовцев |
Events/DOM/Window |
4 |
29.06.2012 09:23 |
|
|
|