标题不清楚,所以让我看看我是否可以解释我在做什么。
我列出了用户'帖子,并有这些帖子的喜欢/评论按钮。
我需要做的是,在单击like按钮(<span>
标签)时捕获,然后从隐藏的输入字段中获取post id,并使用它发布到PHP脚本。
在实际向数据库提交之前,PHP正在进行所有检查,如果他们是朋友,隐私级别是否正确等等,但我目前只是在生成javascript / jquery时生成显示了帖子(根据帖子ID命名每个js变量/ DOM元素),但是查看源代码时效率不高且看起来很乱(但是,这是我能让它工作的唯一方法)。
我希望能够使用外部javascript文件来检查何时单击了like按钮,并知道哪些帖子正在被喜欢,并以这种方式工作。
我已经研究了很长一段时间了,而且我的理解是this
可能有用,但我没有运气。我使用foreach()
循环在一个页面上生成多个帖子,因此元素的名称/ ids /类是相同的。
<小时/> 为了更好地理解,这里有一个帖子可能的样子:
<div class="feedPost">
<img src="#" class="feedProfile"/>
<a href="#" class="feedName">FirstName LastName</a>
<div class="feedPostBody">Hello, world!</div>
<input type="hidden" value="24772" name="feedPostID">
<span class="feedLikeButton">Like</span> | <a href="#">Comment</a> | 2 mins ago
</div>
并且,使用javascript / jquery,我希望能够在外部js文件中执行类似的操作:
$('.feedLikeButton').on('click',function(){
var post_id = 0; //I need to get the ID from the post that the like button is related to.
//If I just did $('.feedPostID').val() it wouldn't work
$.post("https://mysite/path/to/like.php", {post: post_id}).done(function(data){
if(data == "success"){
//This will set text from "Like" to "Unlike"
//Again, I can't just do $('.feedLikeButton') to access
//I guess I could do this.innerHTML? Would still need to access feed post id
} else {
//Probably will just flash error to user if error, or something similar
}
});
});
答案 0 :(得分:1)
你应该得到相似的按钮
var likeButton = $(this);
然后拿到它的容器
var container = likeButton.parent();
然后找到隐藏的字段
var idInput = container.find('[name="feedPostID"]');
然后得到它的价值:
var id = idInput.val();
通过所有这些参考,你可以做任何你想做的事。