2014-04-04 111 views
2

之前添加一行到表我有以下的HTML /腳本代碼最後一行

<script type="text/javascript"> 
    $(function(){ 
     $(".AddItem").click(function(){ 
      $(this).parents('table tr:last').after('<tr><td>&nbsp;</td><td><input type="text" name="item[]" value=""></td></tr>'); 
      return false; 
     }); 
    }); 
</script> 
<table> 
    <tr> 
     <td valign="top">Items&nbsp;<a href="#" class="AddItem"><img src="images/16/button-add.png" title="Add more Items"></a></td> 
     <td><input type="text" name="item[]" ></td> 
    </tr> 
    <tr> 
     <td>Count: </td> 
     <td>10</td> 
    </tr> 
</table> 

這將增加該行下方的一行添加按鈕。我需要在頁腳行(Count)上方的表格底部添加一行。 我應該使用什麼選擇器?

請注意this question不符合我的要求,它會選擇最後一行。

+0

您應該創建的小提琴 – Satpal

+0

可能的複製[jQuery的:在第二使用appendTo表的最後一行(http://stackoverflow.com/questions/1645174/ jquery-using-appendto-second-to-last-row-row-of-table) – raghul

回答

8

嘗試.prev()

Fiddle Demo

$(this).closest('table').find('tr:last').prev().after('<tr><td>&nbsp;</td><td><input type="text" name="item[]" value=""></td></tr>'); 
+1

你的第一個版本不能正常工作,但是這個工作很好。我在想如果我可以合併查找和父母。 – AaA

+0

@BobSort很高興現在使用'.closest()',因爲它快於'.parents()' –

4

使用.before()

$(this).parents('table tr:last').before('<tr><td>&nbsp;</td><td><input type="text" name="item[]" value=""></td></tr>'); 

編輯

$(this).parents('table').find("tr:last").before('<tr><td>&nbsp;</td><td><input type="text" name="item[]" value=""></td></tr>'); 
+2

奇怪地''之前'在按鈕前加上一行 – AaA

+2

我想知道你是怎麼直接得到兩個錯誤答案的upvote! – AaA

+0

@BobSort在你的問題中,你提到過,你的代碼會在最後一行之後添加新行。那麼如果你想在最後一行之前添加新行,你應該使用before()方法。答案很簡單.. –

1
$(function(){ 
     $(".AddItem").click(function(e){ 
      $("tr:last", $(this).parents('table')).before('<tr><td>&nbsp;</td><td><input type="text" name="item[]" value="+"/></td></tr>'); 
      return false; 
     }); 
    }); 

你也可以試試這個