jQuery ajax this.id未定义

前端之家收集整理的这篇文章主要介绍了jQuery ajax this.id未定义前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个使用 AJAX删除的项目列表.

该列表是一个简单的列表,其中div和每个div作为id,所以当该项目从数据库删除时,我返回true,然后它删除该行.

这里我的代码

HTML

  1. <div id="row1">
  2. <div>item1</div>
  3. <div><a href="...">view</a></div>
  4. <div><a id="1">delete</a></div>
  5. </div>

JS

  1. $('.delete').click(function () {
  2. if (!confirm('Are you sure you want to delete?')) {
  3. return false;
  4. }
  5. $.ajax({
  6. type: "POST",url: '/delete_record',data: 'id=' + this.id,cache: false,success: function (result) {
  7. if (result == 'good') {
  8. $('#row' + this.id).remove();
  9. }
  10. }
  11. });
  12. });

由于某种原因,this.id不起作用,因为this.id是未定义的…为什么?我在我的href中有id =“1”

解决方法

你正在使用的是指ajax对象,因为在该函数中有一个新的范围.如果要访问范围范围内的变量,您必须在ajax调用之前声明它们.
  1. $('.delete').click(function () {
  2. if (!confirm('Are you sure you want to delete?')) {
  3. return false;
  4. }
  5. var _this = this;
  6. $.ajax({
  7. type: "POST",success: function (result) {
  8. if (result == 'good') {
  9. $('#row' + _this.id).remove();
  10. }
  11. }
  12. });
  13. });

猜你在找的jQuery相关文章