перенумерация строк таблицы jQuery - PullRequest
1 голос
/ 29 сентября 2010

Я пытаюсь изменить нумерацию строк в моей таблице, используя jQuery

Это сгенерированный HTML

...
...
<tr>
<td><input type="hidden" class="counter" value="5"></td>
<td><input type="text" size="40" id="drugName5" name="drugName[5]" class="drugName required" value=""></td>

<td><input type="text" name="dose[5]" class="dose" value=""></td>
<td><input type="text" name="days[5]" class="days" value=""></td>
<td><input type="image" src="images/delete.png" class="removeRow"></td>
</tr>
 ....
....

Теперь нажатие delete.png вызывает эту функцию

$(function(){
  $("#right").delegate(".removeRow", "click", function(){
          var counter = $(this).parent("td").parent("tr").find(".counter").val();
          $(this).parent("td").parent("tr").remove();

          $(this).parent("td").parent("tr").parent().find("tr").each(function() {
                 var curIndex = $(this).find(".counter").val();
                 if (curIndex  > counter) {
                       $(this).find(".counter").attr("value", "" + (curIndex - 1) + ""
                       //Change Other Numbers Here
                      //......

);
  }
});

Почему это не работает?

Я неправильно ориентируюсь в DOM?

Или это проблема в том, как я пытаюсь изменить нумерацию?

Пожалуйста, помогите / дайте ссылки.

1 Ответ

0 голосов
/ 29 сентября 2010
$(this).parent("td").parent("tr").remove();

      $(this).parent("td").parent("tr").parent().find("tr").each(...

старайтесь не удалять элемент, на который Вы ссылаетесь в будущем.Поместите remove в конец функции.

С другой стороны, я бы сделал что-то вроде этого (предполагая, что числа совпадают):

$tr=$(this).parent('tr');
$tb=$tr.parent('table');
$tr.remove();
$tb.find('tr').each(function(c){
 $(this).find('td:first input').val(c);
 });

И наконец - я всегда использую idатрибут в tr для количества строк и т. д.

...