Javascript 在最后一行之前向表中添加一行
我有以下HTML/脚本代码Javascript 在最后一行之前向表中添加一行,javascript,jquery,html,Javascript,Jquery,Html,我有以下HTML/脚本代码 <script type="text/javascript"> $(function(){ $(".AddItem").click(function(){ $(this).parents('table tr:last').after('<tr><td> </td><td><input type="text" name="item[]" v
<script type="text/javascript">
$(function(){
$(".AddItem").click(function(){
$(this).parents('table tr:last').after('<tr><td> </td><td><input type="text" name="item[]" value=""></td></tr>');
return false;
});
});
</script>
<table>
<tr>
<td valign="top">Items <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>
$(函数(){
$(“.AddItem”)。单击(函数(){
$(this).parents('table tr:last')。在('')之后;
返回false;
});
});
项目
计数:
10
这将使用“添加”按钮在行下方添加一行。我需要在表底部的页脚行(计数)上方添加一行。
我应该使用什么选择器
请注意不符合我的要求,它选择最后一行 使用.before()
进行此操作
$(this).parents('table tr:last').before('<tr><td> </td><td><input type="text" name="item[]" value=""></td></tr>');
$(this).parents('table tr:last')。在('')之前;
编辑
$(this).parents('table').find("tr:last").before('<tr><td> </td><td><input type="text" name="item[]" value=""></td></tr>');
$(this).parents('table').find(“tr:last”).before('');
试试看
$(this).closest('table').find('tr:last').prev().after('');
$(函数(){
$(“.AddItem”)。单击(函数(e){
$(“tr:last”,$(this).parents('table'))。before('');
返回false;
});
});
你也可以试试这个beforebefore奇怪的是,在一行前面加一行,然后按按钮。我想知道你怎么会在一个错误的答案上马上得到两张赞成票@BobSort在您的问题中,您提到,您的代码将在最后一行之后添加新行。然后,如果要在最后一行之前添加新行,则应使用before()方法。答案是直截了当的。若你们读得正确的话,你们可以在第一行之后加上按钮(第一行),按下其他行。至少在发布之前请在浏览器中检查您的代码。
find().before()
有效,但我只有一个答案投票,@Tushar比您快。再次感谢您应该创建一个Fiddle可能的副本,您的第一个版本不起作用,但这一个工作得很好。我在考虑是否可以合并“查找”和“父项”。@BobSort很高兴现在可以使用.closest()
,因为它比.parents()
快。此版本的问题是它假设表中至少有两行。如果只有一个,那就不行了。根据Anoop Joshi的回答,使用.before()
。
$(this).closest('table').find('tr:last').prev().after('<tr><td> </td><td><input type="text" name="item[]" value=""></td></tr>');
$(function(){
$(".AddItem").click(function(e){
$("tr:last", $(this).parents('table')).before('<tr><td> </td><td><input type="text" name="item[]" value="+"/></td></tr>');
return false;
});
});