Есть ли такая вещь, как относительный селектор jQuery? - PullRequest
14 голосов
/ 23 августа 2010

У меня есть ссылка на объект jquery с переменной this. Я ищу способ применения дочернего селектора к объекту.

Я использую $(this).find('table > tbody > tr > td'), но я стремлюсь к чему-то вроде $('[Value of $(this) goes here somehow] > table > tbody > tr > td').

Я понимаю, что могу сделать $(this).children('table').children('tbody').children('tr').children('td'), но мне было интересно, есть ли какой-нибудь синтаксический сахар, который я мог бы использовать здесь.

Ответы [ 3 ]

24 голосов
/ 23 августа 2010

Вы также можете начать с дочернего селектора (>) при использовании .find(), например:

$(this).find('> table > tbody > tr > td')

Это часто пропускаемый вариант использования, но он прекрасно работает для того, что вы ищете.

7 голосов
/ 23 августа 2010

Как сказал Ник, вы можете использовать find () или контекст селектора :

$('> table > tbody > tr > td', this)

// Is the equivalent of
$(this).find('> table > tbody > tr > td')
5 голосов
/ 01 апреля 2016

Альтернативным способом будет передача второго параметра $('selector', context), который определяет контекст для поиска.

По умолчанию селекторы выполняют поиск в старте DOM в корне документа. Тем не менее, альтернативный контекст может быть дан для поиск с использованием необязательного второго параметра функции $ ().

$( "div.foo" ).click(function() {
    $( "span", this ).addClass( "bar" );
});
...