Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Add a row to table before last row

I have following HTML/Script code

<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>

This will add a row below the row with add button. I need to add a row at the bottom of table above footer row (Count). What selector should I use?

Please note this question does not meet my requirement, It selects the last row.

like image 870
AaA Avatar asked Apr 04 '14 07:04

AaA


3 Answers

Try .prev()

Fiddle Demo

$(this).closest('table').find('tr:last').prev().after('<tr><td>&nbsp;</td><td><input type="text" name="item[]" value=""></td></tr>');
like image 182
Tushar Gupta - curioustushar Avatar answered Sep 22 '22 03:09

Tushar Gupta - curioustushar


$(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;
        });
    });

you can also try this

like image 21
AMS Avatar answered Sep 20 '22 03:09

AMS


USe .before() for that

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

Edit

$(this).parents('table').find("tr:last").before('<tr><td>&nbsp;</td><td><input type="text" name="item[]" value=""></td></tr>');
like image 43
Anoop Joshi P Avatar answered Sep 24 '22 03:09

Anoop Joshi P