tags:

views:

63

answers:

2

Supposed I have table like this

id  name    address     action
--------------------------------------
s1  n1  a1      delete
s2  n2  a2      delete

delete is a link for example <a href="http://localhost/student/delete/1"&gt;. In the real case I delete the student using ajax. In order to simplify the code, I just alert the link and omit the ajax script. I just wanna know How to delete row from the html document using jquery.

$(document).ready(function() {
$("a").click(function(event) {
    alert("As you can see, the link no longer took you to jquery.com");
        var href = $(this).attr('href');
        alert(href);
        event.preventDefault();
   });
);

I want, After I alert the link the selected row will be remove automatically. Is there any suggestion how to implement this one ?

+1  A: 

Add an id to each <tr> called row_9714 and add an id 9714 to the link. Then in your click event handler call:

var thisId = $(this).attr('id');
$("#row_" + thisId).remove();

Note -- 9714 is just a dummy ID. Just use a unique number here for each row.

psychotik
according to you, which one is the best practice.I use dummy id like $("#row_" + thisId).remove(); or I use closest selector like $(this).closest("tr").remove(); // remove row
adisembiring
While this will work, I think this solution is a little overkill. It can be done a lot cleaner
Philippe Leybaert
why you said that the psychotik answer is overkill ?
adisembiring
Getting the id first, and then building a string to select the row with a specific id is not very efficient. After all, jQuery offers very nice ways of selecting the parent container(s) of any element
Philippe Leybaert
+2  A: 

You don't need to call preventDefault(). Simply returning false from the event handler has the same effect.

To remove the row where the <a> link is located, you can call $(this).closest("tr").remove():

$(document).ready(function() {
$("a").click(function(event) {
    alert("As you can see, the link no longer took you to jquery.com");
    var href = $(this).attr('href');
    alert(href);
    $(this).closest("tr").remove(); // remove row
    return false; // prevents default behavior
   });
);
Philippe Leybaert
nice... i didn't know about `closest`
psychotik