Количество строк таблицы jQuery всегда возвращает значение 1 - PullRequest
2 голосов
/ 02 марта 2010

Почему-то каждый раз, когда я пытаюсь посчитать количество строк в таблице он всегда возвращает 1. Я динамически добавляю и удаляю строки в таблица, поэтому я начинаю думать, что это просто подсчет количества строк изначально настроено в таблице. вот код, который я использую.

$(".elementDelRowButton").live ('click', function (event) {

console.log ($(this).closest('table').length);
                  if ($(this).closest('tr').index()!=0) {
                      $(this).parent().parent().remove();
                  }

            });

Я пробовал использовать размер, длину и другие варианты, всегда возвращается 1.

Вот HTML:

<table id="element_items"><tr>
  <td><input type="radio" name="radio" /></td>
  <td><input type="text" value="RadioItem"/></td>
  <td><span class="elementAddRowButton">+</span>/<span class="elementDelRowButton">-</span></td>
</tr>
</table>

Ответы [ 3 ]

4 голосов
/ 02 марта 2010

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

console.log($(this).closest('table').find('tr').length);

Кстати, «this.parent (). Parent (). Remove ()» выглядит опасно. Вы можете использовать селектор вместе с «ближайшей» функцией.

2 голосов
/ 02 марта 2010

console.log ($ (this) .closest ('table'). Length); просто верните набор jquery, который содержит ближайший тег «таблица» ... Набор содержит один элемент undeeed, саму таблицу, а ближайший возвращает первый родительский элемент, который соответствует

console.log ($ (this) .closest ('table'). Children ("tr"). Length должен давать количество строк

0 голосов
/ 02 марта 2010

Спасибо всем .. это сработало для моей ситуации:

console.log ($ (this) .closest ('table'). Find ('tr'). Length);

...