Вычисление этого очень длинного оператора Jquery - PullRequest
0 голосов
/ 07 февраля 2011
   <table id="tb1" border="0" align="left" cellpadding="2" cellspacing="2" class="formTable" width="100%">
   <tbody>
      <tr> 
         <th class="coltextleft" colspan=3> seats </th>
         <th>Total Seat Count :  <span id="seats">0</span></th>
         <th>SALC  <input name="txt1" type="text" id = "txt1"></th>
         <th>Column name </th>   <th> <input name="id_reset" type="button"  id="id_reset" value="RESET" ></th>              
      </tr>
      <tr>
         <td>&nbsp;</td>
         <td id="zxx"> Col1</td>
         <td> Col2</td>
         <td> Col3</td>
         <td> COL4</td>
         <td>COL5</td>
         <td>COL6</td>
      </tr>
      <tr id ="rnum_$i"><td>$i</td>
         <td><input type="text" id="id_seats$i" name="seats[]"/></td>
         <td>HTML ELEMENT OF TYPE SELECT </td>
         <td>HTML ELEMENT OF TYPE TEXT</td>
         <td>HTML ELEMENT OF TYPE TEXT</td>
         <td>HTML ELEMENT OF TYPE TEXT</td>
         <td>HTML ELEMENT OF TYPE TEXT</td>
      <tr>
   </tbody>
</table>

Скажем, для приведенной выше HTML-таблицы у меня есть 5 строк, и у нас есть кнопка "Добавить строку", которая добавляет новую строку в таблицу.

var num = $('#id_seats1').parent().parent().parent().children().last().children().html()*1;

Как вычислить приведенный выше оператор Jquery для приведенной выше таблицы HTML. Результат, который этот оператор дает количество строк которые присутствуют в приведенной выше таблице HTML. Не могли бы вы показать пошаговое выполнение этого заявления

var num = $('#id_seats1').parent().parent().parent().children().last().children().html()*1;

Пожалуйста, помогите

Ответы [ 2 ]

4 голосов
/ 07 февраля 2011
 $('#id_seats1')

Выбирает элемент <input id='id_seats1'>.

 .parent().parent().parent()

при этом выбирается td, затем tr, затем элемент tbody.

.children().last()

это выбирает последнего потомка элемента tbody, который является tr

.children().html()

это выбирает html-содержимое всех td s в последней строке

*1

это преобразует содержимое последней строки (которая является строкой, содержащей все содержимое ячеек в этой строке) в число.

Поскольку первая ячейка содержит переменную счетчика $i, это значение, которое в итоге присваивается var num

1 голос
/ 07 февраля 2011

Оператор jQuery не будет возвращать количество строк в таблице, но содержимое числового эквивалента html дочернего элемента последнего элемента.

Фрагмент jQuery для определения общего числа строк в таблице должен был быть

var num = $('#id_seats1').parent().parent().parent().children().length - 2;

и может быть оптимизирован какидеальным решением было бы,

var num = $('#tb1 > tbody > tr').length - 2;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...