Выбор потомка в jQuery, если у меня уже есть ссылка на элемент - PullRequest
3 голосов
/ 06 декабря 2010

У меня есть следующий HTML:

<table id="myTable">
  <tr>
    <td><div>test</div></td>
  </tr>
  <tr>
    <td><div>test</div></td>
  </tr>
</table>

У меня есть ссылка на #myTable в переменной $myTable.

Как выбрать все теги-потомки div безснова использовать строку #myTable (т.е. использовать только объект $myTable)?

Для пояснения, предположив, что этот пример сработал:

$('#myTable div')

... он не соответствует моим критериям, поскольку я не хочу повторно вводить #myTable.

Кроме того, я бы предпочел не указывать каждый родительский элемент в иерархии следующим образом:

$myTable.children('tr').children('td').children('div')

Я пытался использовать

$myTable.children('div')

... но, похоже, он выбирает только непосредственных потомков, которые не являются элементами div.

Я хочу использовать что-то вроде этого:

$myTable.descendants('div')

Ответы [ 3 ]

5 голосов
/ 06 декабря 2010

Вы можете использовать функцию find в jQuery.

$myTable.find('div');

В качестве альтернативы вы можете указать область действия так:

$('div', $myTable);

оба должны возвращать один и тот же набор

4 голосов
/ 06 декабря 2010

Функция find делает именно то, что вы хотите.

$myTable.find('div');

1 голос
/ 06 декабря 2010

У вас могут возникнуть проблемы при тестировании предлагаемых решений, поскольку вы включили "#" в свой атрибут id. Должно быть:

<table id="myTable">

И вы можете просто использовать $('div', $myTable) для выбора дочерних элементов.

Проверьте решение здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...