我正在尝试使用$ .get替换div及其更新版本。我正在做这样的事情:
$('.clickable').click( function() {
$.get(url, function(data) {
$(this).replaceWith(data);
});
});
但它似乎不起作用。我想这个$(这个)不喜欢这样改变,还是应该有效?如果它不应该我想通过搜索数据来检索当前div的属性值,是否可能?
编辑:删除了$.get(url + ' #' + $(this).attr('id')
,因为看起来$ .get实际上并不像load()。因此,被替换的div将显示整个数据......如果有人有适当的解决方案来选择一部分数据,我将不胜感激。添加评论或其他内容。
答案 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);
});
});