如何为每个<li>分配相应的数据?</li>

时间:2015-01-13 02:40:50

标签: javascript jquery parse-platform

我在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:

enter image description here

相反,它全部附加到一个列表项。

1 个答案:

答案 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>');

通过这种方式,您可以为每个生成的朋友匹配特定的课程。