jQuery表行重新编号

时间:2010-09-29 10:29:59

标签: jquery html-table

我正在尝试使用 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 :(得分:0)

$(this).parent("td").parent("tr").remove();

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

尽量不要删除将来引用的元素。在函数末尾放置删除。

另一方面,我会做这样的事情(假设数字是一致的):

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

最后 - 我总是在tr中使用id属性来获取行数等。