gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 01:46:03 25 4
gpt4 key购买 nike

使用 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
<div id="FriendsStuffName"></div>

不是“A”、“dan”或“rob”

$(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("<img class='images' src='" + imageURLs[j] + "'/>");
$('#FriendsStuffName').append("<div class='username'>'"+Username[j]+"'</div>");
}
},
error: function(error) {
//If the query is unsuccessful, report any errors
alert("Error: " + error.code + " " + error.message);
}
});
}
</script>


<div id="imgs"></div>
<div id="username"></div>
<div id="container"></div>
<div id="FriendsStuff"></div>
<div id="FriendsStuffName"></div>
</body>
</html>

enter image description here

这是我的用户

enter image description here

最佳答案

这没有意义:

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) {

关于javascript - 为什么查询运行返回的数据不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23874834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com