2015-12-17 3 views
1

У меня есть сложная структура таблицы на веб-странице, как показано ниже. Там потенциально может быть более глубокое вложение таблиц.Получить родительский элемент td, который находится непосредственно под tr с определенным классом

Я пытаюсь найти селектор jQuery, чтобы найти ближайший td к данному элементу ввода, с добавленным ограничением на то, что tr этого td должен иметь класс 'class1'.

Вопрос: Как я могу получить сингл «td», описанный выше в параграфе с помощью jQuery? Я пробовал код, но безуспешно.

Например, если данный входной элемент firstname то td непосредственно окружающий этот элемент не будет, кого я ищу, но тд с комментарием говоря <!--this is the td I am trying to get--> является правильным тд.

Я попробовал следующий селектор, чтобы получить этот td, но его возвращаемые 6 td элементов DOM, когда я ожидал только одного. Вы можете увидеть этот код в действии на этот адрес: demo for this scenario

Code Я пытался, но он не работает

$('#firstName').parents("tr.class1").find("td"); 

Html вложенных таблиц

<table> 
    <tr class='class1'> 
     <td> 
     <!--some content here--> 
     </td> 
     <td><!--this is the td I am trying to get--> 
     <table> 
      <tr> 
       <td> 
        First Name 
       </td> 
       <td> 
        <input type='text' id='firstname'> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        Last Name 
       </td> 
       <td> 
        <input type='text' id='lastname'> 
       </td> 
      </tr> 
     </table> 
     </td> 
    </tr> 
</table> 

ответ

1

добиться того, что вам необходимо использовать closest() с прямым дочерним селектором, >, чтобы получить родителя td. Попробуйте это:

var $td = $('#firstname').closest('.class1 > td'); 

Example fiddle

+0

Таким образом, значение '.class1' дается для ближе означает любой элемент с этим классом, который находится ближе всего к' firstname'? – Sunil

+1

Да. 'closeest()' пересекает DOM, чтобы найти ближайший родительский элемент, который соответствует предоставленному селектору. В этом случае он ищет элемент 'td', который является прямым потомком' .class1'. –

+0

Также кажется, что '.class1> td' найдет все td-элементы непосредственно под элементом class1, но так как вы указали ближайший к первому, так что мы получим один из этих 2 tds, ближайший. – Sunil

 Смежные вопросы

  • Нет связанных вопросов^_^