JQuery $ .get:搜索数据响应以获取一些属性值

时间:2012-08-07 13:42:44

标签: jquery get replacewith

我正在尝试使用$ .get替换div及其更新版本。我正在做这样的事情:

$('.clickable').click( function() { 
   $.get(url, function(data) {
      $(this).replaceWith(data);
   });
});

但它似乎不起作用。我想这个$(这个)不喜欢​​这样改变,还是应该有效?如果它不应该我想通过搜索数据来检索当前div的属性值,是否可能?

编辑:删除了$.get(url + ' #' + $(this).attr('id'),因为看起来$ .get实际上并不像load()。因此,被替换的div将显示整个数据......如果有人有适当的解决方案来选择一部分数据,我将不胜感激。添加评论或其他内容。

3 个答案:

答案 0 :(得分:1)

$('.clickable').click( function() { 
   $.get(url + ' #' + $(this).attr('id'), function(data) {
      $(this).replaceWith(data); // here
   });
});

在回调范围内,this指的是回调本身。使用临时存储可点击的另一个变量:

$('.clickable').click( function() { 
   var that = this;
   $.get(url + ' #' + $(this).attr('id'), function(data) {
      $(that).replaceWith(data);
   });
});

答案 1 :(得分:1)

$.get函数中,有一个新范围,因此this不是之前的this。您可以将其保存在变量中:

$('.clickable').click( function() { 
   var elem = this;
   $.get(url + ' #' + $(this).attr('id'), function(data) {
      $(elem).replaceWith(data);
   });
});

答案 2 :(得分:1)

这是指get对象,您可以在调用get动作之前将其设置为标识符 即。

$('.clickable').click( function() { 
   var replaceable = this;
   $.get(url + ' #' + $(this).attr('id'), function(data) {
      $(replaceable).replaceWith(data);
   });
});