2012-02-21 1 views
1

Как получить непосредственных детей при поиске определенного элемента? Например, я хочу получить элементы tr для таблицы t1.Найти ближайших детей и больше не использовать jQuery

<table id="t1" bgcolor="yellow"> 
     <tbody> 
      <tr> 
       <td>This is Cell 1</td> 
       <td>This is Cell 2</td> 
      </tr> 
      <tr> 
       <td>This is Cell 3</td> 
       <td> 
        <table id="t2" bgcolor="red"> 
         <tbody> 
          <tr> 
           <td>This is Cell 1</td> 
           <td>This is Cell 2</td> 
          </tr> 
          <tr> 
           <td>This is Cell 3</td> 
           <td>This is Cell 4</td> 
          </tr> 
         </tbody> 
        </table> 
       </td> 
      </tr> 
     </tbody> 
    </table> 

Я попытался это:

'Count = ' + $('#t1 tbody').children('tr').length; 

Однако я получить количество 4, я не понимаю, почему?

Here является полный пример:

ответ

5

Использование:

'Count = ' + $('#t1 > tbody').children('tr').length; 
// or: $("#t1 > tbody > tr").length 
// or: $("#t1")[0].rows.length; // In this case, equal to previous code. 
           // Warning: This also includes the rows from 
           // the <thead> and <tfoot> sections. 

Ваш текущий код показывает 4, потому что у вас есть два <tbody> элементов в таблице #t1:

<table id="t1" bgcolor="yellow">   <-- #t1 
    <tbody>        <--- tbody 
     <tr> ... </tr>      <----- Child 1 
     <tr> ...       <----- Child 2 
        <tbody>    <--- tbody (unexpected?) 
         <tr> ... </tr>  <----- Child 3 
         <tr> ... </tr>  <----- Child 4 
        </tbody> 
       </table> 
      </td> 
     </tr> 
    </tbody> 
</table> 
+0

Ах! Я пытался быть осторожным в том, что я забыл тело. Большой час потрачен. Спасибо, Роб! – Abs

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