这是代码
$(".home .up_0").click(function(){
$.post("includes/vote.php",
{
truc : $(this).attr("id")
},
function(data){
if(data=='fail')
{
alert("Error.");
}
else
{
$(this).parents('.home').find('.score_neutre').html(data);
}
}
);
});
答案 0 :(得分:6)
这可能是因为this
不是你在内部函数中所期望的。您需要添加一个变量来存储引用:
$(".home .up_0").click(function(){
var this_obj = $(this);
$.post("includes/vote.php",
{
truc : $(this).attr("id")
},
function(data){
if(data=='fail')
{
alert("Error.");
}
else
{
this_obj.parents('.home').find('.score_neutre').html(data);
}
}
);
});
答案 1 :(得分:1)
你的问题是this
没有指出你的想法。
这样做:
$(".home .up_0").click(function(){
var $this = $(this); // Cache the current `this` as a jQuery wrapped DOM element
$.post("includes/vote.php",
{ truc : $(this).attr("id") },
function(data){
if(data=='fail') {
alert("Error.");
} else {
// Reference the cached variable `$this`
$this.parents('.home').find('.score_neutre').html(data);
}
});
});
答案 2 :(得分:0)
它可能与this
没有代表$(".home .up_0")
元素有关,因为它在function(data){}
成功函数中?
尝试添加虚拟div,id =“Test”并在成功函数内使用:
£('#Test').html(data);
这会告诉你它是否有效。如果是,您需要使用var来存储this
代表的内容。