【发布时间】:2017-12-08 01:40:53
【问题描述】:
最初我有一个“点赞按钮”,它工作得非常顺利,它看起来像这样:
<a href="javascript:void();" class="like" id="<?php echo $row['id']; ?>">Like <span><?php echo likes($row['id']); ?></span></a>
这里是 Ajax 代码:
<script>
$(function(){
$(".like").click(function(){
var postid = $(this).attr("id");
$.ajax({
type:'POST',
url:'addlike.php',
data:'id='+postid,
success:function(data){
if(data=="you already liked this post"){
alert(data);
}
else{
$('a#'+postid).html(data);
}
}
});
});
});
</script>
如果 AJAX 成功,addlike.php 将有两种响应,如果用户已经喜欢它,则提醒“您已经喜欢该帖子”,或者更新的喜欢数量。例如,如果当前有 10 个赞,当用户点击按钮时,$('a#'+postid).html(data) 会从 10 变为 11,因为此时数据将是更新后的赞数,并且 $('a#'+postid) 选择刚刚被点击的“like button”。
出于某种原因,我必须使用 data-id 而不是 id 作为按钮的 html id。更详细的解释请看这里:Disable boostrap toggle collapse for one class and enable it for another
现在我必须在 ajax 成功响应中调用具有 data-id 而不是 id 的元素,我该怎么做?我尝试了以下方法:
$('a#data-id'+postid).html(data);
$('.[data-id="postid"]').html(data);
$('a[data-id='+postid']').html(data);
$('a#'+"[data-id=postid"]).text(data);
但它们都不起作用。提前致谢。
【问题讨论】:
-
工作正常吗??
标签: javascript jquery html css ajax