Ajax生成的内容,在onclick时无法隐藏

时间:2017-07-07 21:12:08

标签: javascript jquery ajax

这是我的代码:

HTML代码:(由ajax生成的动态)。

<div class="btn btn-primary" image-data="imagedata" name-data="name data" artist-data="artist data" country-data="in" id="1252785363" onclick="ajax($(this));return false;">Add Album</div>
<div class="btn btn-primary" image-data="imagedata" name-data="name data" artist-data="artist data" country-data="in" id="1252985363" onclick="ajax($(this));return false;">Add Album</div>
<div class="btn btn-primary" image-data="imagedata" name-data="name data" artist-data="artist data" country-data="in" id="1256985363" onclick="ajax($(this));return false;">Add Album</div>

每个DIV都有唯一的ID!

使用Javascript:

function ajax($this) {
  var id = $this.attr("id");
  var image_data = $this.attr("image-data");
  var name_data = $this.attr("name-data");
  var artist_data = $this.attr("artist-data");
  var country_data = $this.attr("country-data");

  $.ajax({
    method: "POST",
    url: "URL to Call",
    dataType: "text",
    data: {
      image: image_data,
      artist: artist_data,
      name: name_data,
      country: country_data,
      id: id
    },
    success: function(response) {
      console.log(response);
      $(id).hide();
      alert(id);
    }
  });
}

它返回响应,它提醒ID,但不知何故我无法找到,我尝试$(id).css('display', 'none');,切换但没有运气!

如果可能请告诉我解决方案!

2 个答案:

答案 0 :(得分:6)

您需要使用#前缀来选择ID。

$("#" + id).hide();

答案 1 :(得分:3)

您正在阅读的id属性不包含#选择器,JQuery在搜索元素时需要该选择器。

如果你使用$("#" + id).hide();,我认为你会得到你想要的结果。