views:

432

answers:

1

i have a table with tr containing 10 td elements. The tr are generated dynamically. For eg

<tr id = "<?php echo $count; ?>" >

<td>name </td>
<td>info </td>
...
...
<td><a href="delete.php">delete</a></td>

</tr>

What i wish to do is when i click on delete link , using ajax go to delete page do the needful and then without page refresh delete the row.

My problem is how do i get the ID in jquery? or is there any other way i could work out but i wish to use jquery for this particular purpose. Thanks

+7  A: 

You could do this:

$("a[href='delete.php']").click(function(e){
   var tr = $(this).closest('tr'),
       id = tr[0].id;

   // Put your AJAX call here
   $.post('/delete/' + id, function(){
       // Animate up, then remove
       tr.slideUp(500, function(){
          tr.remove();
       });
   });

});

closest() travels up the DOM tree looking for an ancestor that matches the selector. In this case, we were looking for the first tr. I could have also used parent() and gotten the same result.

Doug Neiner
There are lots of ways to implement, I agree that `closest` is really neat and direct to the point. +1
o.k.w
Wow, thanks a ton sir, will implement this.
noobcode
Ok i have a problem. my link is like delete.php?id=<?php echo "$id"; ?>How do i work out this issue then?
noobcode
@idrish Just change the selector to this: `$("a[href^='delete.php']")` which says "Any link whose `href` *starts with* `delete.php`. That should do what you want.
Doug Neiner