为什么从查询运行返回不正确的数据?

使用Parse.com和JavaScript SDK。

http://www.kudosoo.com/friendslist.html

使用这里的代码http://jsfiddle.net/Dano007/LJ8rn/ (仅供参考,它不会运行)。

我希望在用户点击用户名后返回在“friendName”变量中选择的用户的上传徽章。

点击用户名时我看到的是这样的

Username.push(object.get("uploadedBy")); 

返回他们刚刚点击的名称的用户名,而不是上传徽章的人的实际用户名。

因此,我得出结论,在我的JQuery / JavaScript代码中的某个地方,我有点选择错误的元素。 我认为这必须与FriendName变量有关? 但我无法解决它,它让我发疯

在屏幕截图中,您可以看到应该返回的a3aePaphBF

 

不是’A’,’dan’或’抢’

 $(document).ready(function() { $(document).on('click','.username', function (event) { event.preventDefault(); friendName = $(this).text(); console.log(friendName); friendFeed(); }); }); 

/////////////////

 var currentUser = Parse.User.current(); var myBadges = Parse.Object.extend("myBadges"); // Captures the input from the user and checks if the name already exists within the Db. function friendFeed() { var friendName = $('#friendsearch').val(); //console.log(friendName); var query = new Parse.Query(myBadges); new Parse.Query("myBadges").matchesQuery("uploadedBy", new Parse.Query("_User").equalTo("username", friendName)); query.find({ success: function (rules) { imageURLs = []; for (var i = 0; i < rules.length; i++) { var object = rules[i]; imageURLs.push(object.get("BadgeName")); Username.push(object.get("uploadedBy")); } for(var j = 0; j < imageURLs.length; j++) { $('#FriendsStuff').append(""); $('#FriendsStuffName').append("
'"+Username[j]+"'
"); } }, error: function(error) { //If the query is unsuccessful, report any errors alert("Error: " + error.code + " " + error.message); } }); }

在此处输入图像描述

这是我的用户

在此处输入图像描述

这根本不符合逻辑:

 var query = new Parse.Query(myBadges); new Parse.Query("myBadges").matchesQuery("uploadedBy", new Parse.Query("_User").equalTo("username", friendName)); 

首先,您要为“myBadges”创建一个查询,并将其分配给变量“query”。 然后,您还要为“myBadges”创建另一个查询。 此新查询未在任何位置分配。

您正在运行“查找”操作的查询是您已分配给查询变量的查询。

如果你期望第二行,对第一行有任何影响,那么这可能是你的错误的根源。

试试这个:

 var query = new Parse.Query(myBadges); query.matchesQuery("uploadedBy", new Parse.Query("_User").equalTo("username", friendName)); query.find({ success: function (rules) {