我正在尝试使用 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?
或者我尝试重新编号的方式是否有问题?
请帮助/提供参考。
答案 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属性来获取行数等。