JQuery属性总是返回相同的值
JQuery attr always returns the same value
伙计们,我有帖子列表,每个帖子都有自己的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
因此,当我试图从数据id脚本中获取值时,始终返回188数字。当点击帖子1、帖子2、帖子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");
}
},
您似乎在循环中生成HTML。请记住,HTML中的标识符必须是唯一的,您可以使用CSS类,然后可以使用类选择器(".class")。将HTML修改为
<i class="like glyphicon glyphicon-heart" data-id="<?=$post->post_id;?>"></i> Like
更改点击处理程序并使用当前元素上下文(即this
)获取ID
$('.like').click(function(){
var id= $(this).data('id');
});
每个元素都必须有一个唯一的id属性。不能有多个id为"like"的元素。请尝试以下操作:
<i class="like glyphicon glyphicon-heart" data-id="<?=$post->post_id;?>"></i> Like
然后定义这样做来设置回调:
$('.like').click(function() { /* your code here */ });
相关文章:
- MongoDB (php) - 以数组而不是多个属性的形式返回文档属性
- jQuery可以't获取data-*属性值,返回undefined
- JavaScript-获取数据属性的值返回未定义的值
- angularjs如何从返回值中找到正确的属性
- 访问嵌套 json 对象的属性将返回未定义
- Javascript未返回样式属性
- 如何将返回一串数字的 JSON 属性转换为日期
- hasOwnProperty 在对照父对象属性进行检查时返回 true
- JavaScript 这返回未知属性
- img src 属性在为空时返回页面的 URL
- 窗口对象属性返回一个dom节点
- 根据其他属性返回的值设置属性
- 使用MeteorJS堆栈,如何使用对象的id返回该对象的属性
- 从具有最高值的对象返回属性
- jQuery on change don't返回属性值
- Java 脚本中的 getAttribute(attr) 方法返回属性的先前值
- 从函数返回属性映射
- 返回属性(XHR)未定义
- 如何返回属性名
- attr('value')返回属性值而不是属性值