【发布时间】:2020-11-08 00:34:19
【问题描述】:
我正在尝试制作单页应用程序,当我尝试将 div 元素附加到页面时出现错误:
Uncaught (in promise) TypeError: Cannot read property 'append' of null
这是我的 javascript 代码
function load_mailbox(mailbox) {
// Show the mailbox and hide other views
document.querySelector('#emails-view').style.display = 'block';
document.querySelector('#compose-view').style.display = 'none';
document.querySelector('#compose-error').style.display = 'none';
// Show the mailbox name
document.querySelector('#emails-view').innerHTML = `<h3>${mailbox.charAt(0).toUpperCase() + mailbox.slice(1)}</h3>`;
// list of mails
fetch(`/emails/${mailbox}`)
.then(response => response.json())
.then(emails => {
// Print emails
var x = emails['length'];
for (i=0;i<x;i++){
const emailele = document.createElement('div');
emailele.setAttribute("style","border: 1px solid black;border-radius:5px");
emailele.setAttribute("id",`${emails[i].id}`);
if (mailbox == 'inbox' || mailbox == 'archived'){
emailele.innerHTML = (`<p><strong>${emails[i].sender}</strong></p><p>${emails[i].subject}</p><p>${emails[i].timestamp}</p>`);
}
if (mailbox == 'inbox' && `${emails[i].read}`){
emailele.setAttribute("style","background-color:#cfcfcf");
}
if (mailbox == 'sent'){
emailele.innerHTML = (`<p><strong>${emails[i].recipients}</strong></p><p>${emails[i].subject}</p><p>${emails[i].timestamp}</p>`);
}
document.querySelector('#emails-view-i').append(emailele);
}
console.log(emails);
// ... do something else with emails ...
});
}
这是我的 HTML
<div id="emails-view">
<div id="emails-view-i"></div>
</div>
请帮忙!
【问题讨论】:
标签: javascript html