我目前正在尝试从查询解析后使用javscript将一堆元素添加到列表中。
如果我不添加任何点击监听器,我可以获得完整列表,但是如果我添加点击监听器,则只有前5个项目出现在列表中。
以下是我的javascript文件中的代码,它首先在html中调用:
if (!Parse.User.current()){
window.location.href = 'index.html';
}
else {
getParticipants();
}
$( document ).ready(function() {
$('#sign-out').click(function(){
Parse.User.logOut();
window.location.href = 'index.html';
});
});
function getParticipants (){
var Participants = Parse.Object.extend("Participants");
var query = new Parse.Query(Participants);
query.ascending("patientID");
query.find({
success: function(results) {
for (var i = 0; i < results.length; i++) {
var object = results[i];
var id = object.get("patientID");
$(".list-group").append("<li class='list-group-item' id='" + id + "'>" + id + "</li>");
(function (id) {
$('#' + object.get("patientID")).click(function (e) {
e.preventDefault();
if (typeof(Storage) !== "undefined") {
localStorage.setItem("patientID", id);
} else {
// Sorry! No Web Storage support..
}
window.location = 'profile.html';
});
}(id));
}
},
error: function(error) {
alert("Error: " + error.code + " " + error.message);
}
});
}
答案 0 :(得分:0)
您永远不能在页面加载之前修改DOM,因为此时DOM还没有准备好。
任何DOM操作都应该在触发onload事件后完成。