伙计们我有帖子列表,每个帖子都有自己的ID。我想用jquery从自定义属性中获取该id。问题是,当我尝试调试时,我得到所有时间的某些值。
这是我用PHP从数据库列出的html表。每个帖子都有特定的ID。
Name | id
-------------------
Post 1 | 188
Post 2 | 189
Post 3 | 190
<i id="like" class="glyphicon glyphicon-heart" data-id="<?=$post->post_id;?>"></i> Like
因此,当我尝试从 data-id 脚本获取值时,所有时间都会返回 188 数字。当点击Post 1,post 2,post 3时,所有时间值都是188!好吗?
这是JQuery:
isPostLiked: function() {
var isLiked = false;
var likeText = $("#like");
var itemId = likeText.attr("data-id");
// debug
Post.postLikeBtn.click(function() {
console.log(itemId);
});
//$.ajax({
// type: "post",
// url: baseurl + "/like/isLikedAjaxAction/"
//});
if (isLiked == true) {
likeText.css("color", "red");
}
},
答案 0 :(得分:4)
好像你在循环中生成HTML。请记住HTML中的标识符必须唯一,您可以使用CSS类,然后可以使用Class Selector (“.class”)。将HTML修改为
<i class="like glyphicon glyphicon-heart" data-id="<?=$post->post_id;?>"></i> Like
更改点击处理程序并使用当前元素上下文获取ID,即this
$('.like').click(function(){
var id= $(this).data('id');
});
答案 1 :(得分:0)
每个元素都必须具有唯一的id属性。你不能拥有多个ID为&#34;的元素。喜欢。&#34;尝试这样的事情:
<i class="like glyphicon glyphicon-heart" data-id="<?=$post->post_id;?>"></i> Like
然后定义执行此操作以设置回调:
$('.like').click(function() { /* your code here */ });