我在Parse数据库中有一个用户列表。每个用户都有自己的评级,但该评级属于不同的类,因为除非 用户的数据正在被修改,否则您无法写入用户类。 (评论者每次提交评论时,评级用户的评分都应该更改。)
var current = Parse.User.current();
var relation = current.relation("FriendRelations");
relation.query().find({
success: function (results) {
for (var i = 0; i < results.length; i++) {
$('ul').prepend('<li id = "frienditems"><strong><div id ="friendname">' + results[i].getUsername() + '</div></strong></li>');
* * //Get friend's rating.
var Rating = Parse.Object.extend("Rating");
var query = new Parse.Query(Rating);
query.equalTo("user", results[i].getUsername());
query.find({
success: function (results) {
for (var y = 0; y < results.length; y++) {
var object = results[y].get("Rating");
$("#frienditems").append('<p class="friendrating">' + object + '</p>');
}
},
error: function (error) {}
}); * * $('#frienditems').prepend('<img class="profilepicture" src="img/profileimg.jpg">');
$('#friendname').on('click', function () {
var username = $(this).text();
var replaced = username.split(' ').join('+');
window.location = "profile.html?firstname=" + replaced;
});
}
}
});
**这部分是最重要的。理想情况下,我希望能够做到这一点:
var relation = current.relation("FriendRelations");
relation.query().find({
success: function (results) {
for (var i = 0; i < results.length; i++) {
$('ul').prepend('<li id = "frienditems"><strong><div id ="friendname">' + results[i].getUsername() + results[i].get("Rating") + '</div></strong></li>');
这样,很明显当前列表项会获得附加的评级。但由于我无法使用User类更新评级,因此无从谈起。
问题基本上是我有两个不同的类,一个是用户,另一个是用户名和他/她的等级。如果我将评级附加到列表项,Javascript将不知道哪个列表项获得了什么,所以它将全部附加到第一个列表项。
由于可变范围问题,在查询中放置查询没有帮助。
解决此问题的最佳方法是什么?
到目前为止,它最终会像这样,BigBoss应该有50个附加,而John应该有80:
相反,它全部附加到一个列表项。
答案 0 :(得分:0)
我认为您的问题来自于您使用 #frienditems ID。您的浏览器自然会尝试仅匹配一个ID,并在您的脚本中生成多个ID。
在不知道脚本和类的细节的情况下,您可以按照以下方式执行操作:
$('ul').prepend('<li class="frienditem_'+i+'"><strong><div class="friendname">' + results[i].getUsername() + '</div></strong></li>');
和
$('.frienditem_'+i).append('<p class="friendrating">' + object + '</p>');
通过这种方式,您可以为每个生成的朋友匹配特定的课程。