Sunday, April 8, 2012

jQuery ajax this.id undefined



I have a list of items I delete using AJAX.





This list is a simple list with divs and each div as an id so when the item is removed from the database I return true and then it removes the line.





Here my code:





HTML







<div id="row1">

<div>item1</div>

<div><a href="...">view</a></div>

<div><a id="1">delete</a></div>

</div>







JS







$('.delete').click(function () {

if (!confirm('Are you sure you want to delete?')) {

return false;

}

$.ajax({

type: "POST",

url: '/delete_record',

data: 'id=' + this.id,

cache: false,

success: function (result) {

if (result == 'good') {

$('#row' + this.id).remove();

}

}

});

});







For some reason the this.id does not work because this.id is undefined ... why? I have id="1" on my a href.



Source: Tips4all

1 comment:

  1. I don't see any element with a class of 'delete' in your html. Assuming it's the delete link, you need to get the id with $(this).attr('id') instead of this.id.

    ReplyDelete