Javascript Jquery使用多个相同类更新div内容
我正在我的网站上建立一个简单的“喜欢”服务。我希望用户能够点击链接喜欢的东西,得到总喜欢(从php脚本返回) 从脚本获取数据以更新div时遇到问题。这是我的问题:Javascript Jquery使用多个相同类更新div内容,javascript,jquery,Javascript,Jquery,我正在我的网站上建立一个简单的“喜欢”服务。我希望用户能够点击链接喜欢的东西,得到总喜欢(从php脚本返回) 从脚本获取数据以更新div时遇到问题。这是我的问题: <div id="112" class="like">Like it</div> <div id="113" class="like">Like it</div> <div id="114" class="like">Like it</div> <scri
<div id="112" class="like">Like it</div>
<div id="113" class="like">Like it</div>
<div id="114" class="like">Like it</div>
<script>
$(".like" ).click(function() {
var idl = $(this).attr("id");
$.ajax({type:"POST", data: likeid=idl, url:"ajax/publike.php",
success: function(data){
$(this).html(data);
},
error: function(){
alert ("Error");
}
});
return false;
});
</script>
喜欢吗
喜欢吗
喜欢吗
$(“.like”)。单击(函数(){
var idl=$(this.attr(“id”);
$.ajax({type:“POST”,data:likeid=idl,url:“ajax/publike.php”,
成功:功能(数据){
$(this).html(数据);
},
错误:函数(){
警报(“错误”);
}
});
返回false;
});
我只想用我从(数据)中获得的内容更新div,但不更新。如果我更改为$(“.like”).html(数据)代码>它可以工作,但我有很多类,比如,我只需要在单击div时更新
谢谢请执行以下操作:
<script>
$(".like" ).click(function()
{
var idl = $(this).attr("id");
var link = $(this);
$.ajax({type:"POST", data: likeid=idl, url:"ajax/publike.php",
success: function(data)
{
link.html(data);
},
error: function()
{
alert ("Error");
}});
return false;
});
</script>
$(“.like”)。单击(函数()
{
var idl=$(this.attr(“id”);
var-link=$(这个);
$.ajax({type:“POST”,data:likeid=idl,url:“ajax/publike.php”,
成功:功能(数据)
{
html(数据);
},
错误:函数()
{
警报(“错误”);
}});
返回false;
});
当AJAX回调运行时,此
不再作为触发事件的元素在范围内。您需要保留对它的引用:
$(".like" ).click(function() {
var likedElement = $(this);
var idl = $(this).attr("id");
$.ajax({type:"POST", data: likeid=idl, url:"ajax/publike.php",
success: function(data){
likedElement.html(data);
},
error: function(){
alert ("Error");
}
});
return false;
});
试试这个
<script>
$(".like" ).click(function() {
var idl = $(this).attr("id");
$.ajax({type:"POST", data: likeid=idl, url:"ajax/publike.php",
success: function(data){
$('#'+idl).html(data);
},
error: function(){
alert ("Error");
}
});
return false;
});
</script>
$(“.like”)。单击(函数(){
var idl=$(this.attr(“id”);
$.ajax({type:“POST”,data:likeid=idl,url:“ajax/publike.php”,
成功:功能(数据){
$('#'+idl).html(数据);
},
错误:函数(){
警报(“错误”);
}
});
返回false;
});
在进行ajax调用时设置元素的上下文。这比仅仅依赖范围变量更安全。如果在返回第一个ajax调用之前单击了第二个div,则只有最后一个div的html会得到更新。此方法将正确更新两个div
<script>
$(".like" ).click(function() {
var div$ = $(this);
$.ajax({type:"POST", data: likeid=div$.attr("id"), url:"ajax/publike.php", context: div$,
success: function(data){
this.html(data);
},
error: function(){
alert ("Error");
}
});
return false;
});
</script>
$(“.like”)。单击(函数(){
var div$=$(本);
$.ajax({type:“POST”,数据:likeid=div$.attr(“id”),url:“ajax/publike.php”,上下文:div$,
成功:功能(数据){
html(数据);
},
错误:函数(){
警报(“错误”);
}
});
返回false;
});
@Maël:它有帮助并解决了问题吗?如果是,请将此答案标记为已接受并考虑将其投票。