Как я могу выбрать первого потомка из всех потомков объекта jQuery?

0

У меня есть <tr> который включает в себя несколько <td> s, каждый из которых включает ровно один <div>, который может иметь следующую структуру:

<tr id="foo">
  <td><div>...</div></td>
  <td><div>...</div></td>
  ...
  <td><div>...</div></td>
</tr>

Учитывая селектор jQuery obj = $('#foo'), как я могу получить селектор, который указывает на все <div> непосредственно под <td> непосредственно под <tr> (но ничего внутри <div> s)? Другими словами, как я могу составить селектор, эквивалентный:

$('#foo > td > div')

используя obj (определяемый как $('#foo')) в виде obj.someFunction()?

Вероятно, chldren() и/или find() могут быть релевантными, но я не уверен.

  • 0
    obj.find('td div') будет явным .... на самом деле не ясно, что вы хотите с ними делать. obj.find('td:has(div)') даст вам вопрос о TD, может быть, то, что вы хотите
  • 0
    @charlietfl Я думаю, вы имели в виду obj.find('td > div') . '#foo' ли это td div где-либо ниже '#foo' (то есть эквивалентно $('#foo td > div') ) или только объекты непосредственно под '#foo' (т.е. эквивалентно $('#foo > td > div') )?
Показать ещё 3 комментария
Теги:
jquery-selectors

3 ответа

3
Лучший ответ

Вы всегда можете вызвать .children() дважды:

obj.children('td').children('div')
  • 0
    Благодарю. Это похоже на это.
  • 0
    С точки зрения производительности, как вы относитесь к obj.children('td > div') (предоставленному Матей Чренко) по сравнению с obj.children('td').children('div') ?
Показать ещё 2 комментария
2

obj.find('td> div'); то же, что и $ ('# foo td> div');

obj.children('td> div'); то же, что и $ ('# foo> td> div');

  • 0
    Вы хотите выбрать div внутри #foo td, но ничего внутри этого div
  • 0
    Это эквивалентно $('#foo td > div') или $('#foo > td > div') ?
Показать ещё 7 комментариев
-1

Вы можете использовать это в jQuery:

$("#foo td > div:first-child")

Демо: http://jsfiddle.net/jfriend00/EHZK8/

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

  • 0
    Почему отрицательный голос? Это работает и более терпимо к изменениям в HTML-структуре, чем даже лучший ответ. Итак, почему downvote?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню