18910140161

HTML-为什么其他javaScript函数不能读取用javaScript生成的div?-堆栈溢出

顺晟科技

2022-10-19 13:43:46

156

我目前正在做一个项目,我应该使用JavaScript操作单页内容。也就是说,我只需要用JavaScript操作一个HTML页面,我没有机会创建任何其他HTML页面。这就是为什么我要使用JavaScript创建一个div。下面是我的代码:

在这里,声明名为email-details的div。但是,email-detailsdiv不能被我代码中的其他Javascript函数访问。bellow函数在divemail-details

处读取null

它显示以下错误。到底是怎么回事!

这里,inbox.js:13在DOM加载器中,inbox.js:60是in函数。 我是JavaScript的初学者。


顺晟科技:

https://developer.mozilla.org/en-美国/docs/web/api/element/setattribute

返回值 .

所以这就是

的值
document.addEventListener('DOMContentLoaded', function() {
  const emaildetails = document.createElement('div').setAttribute('id','email-details');
  document.body.append(emaildetails);
  // Use buttons to toggle between views
  document.querySelector('#inbox').addEventListener('click', () => load_mailbox('inbox'));
  document.querySelector('#sent').addEventListener('click', () => load_mailbox('sent'));
  document.querySelector('#archived').addEventListener('click', () => load_mailbox('archive'));
  document.querySelector('#compose').addEventListener('click', compose_email);
  document.querySelector('#compose-form').onsubmit = sendmail;
  /*const emaildetails = document.createElement('div').setAttribute('id','email-details');
  document.body.append(emaildetails);*/
  // By default, load the inbox
  load_mailbox('inbox');
  
});

您应该写

document.addEventListener('DOMContentLoaded', function() {
  const emaildetails = document.createElement('div').setAttribute('id','email-details');
  document.body.append(emaildetails);
  // Use buttons to toggle between views
  document.querySelector('#inbox').addEventListener('click', () => load_mailbox('inbox'));
  document.querySelector('#sent').addEventListener('click', () => load_mailbox('sent'));
  document.querySelector('#archived').addEventListener('click', () => load_mailbox('archive'));
  document.querySelector('#compose').addEventListener('click', compose_email);
  document.querySelector('#compose-form').onsubmit = sendmail;
  /*const emaildetails = document.createElement('div').setAttribute('id','email-details');
  document.body.append(emaildetails);*/
  // By default, load the inbox
  load_mailbox('inbox');
  
});

您是将脚本延迟到html文件中还是将其放在body标记的末尾?可能您的脚本是在元素加载之前加载的,这就是为什么您会得到这个错误。您可以这样做:

document.addEventListener('DOMContentLoaded', function() {
  const emaildetails = document.createElement('div').setAttribute('id','email-details');
  document.body.append(emaildetails);
  // Use buttons to toggle between views
  document.querySelector('#inbox').addEventListener('click', () => load_mailbox('inbox'));
  document.querySelector('#sent').addEventListener('click', () => load_mailbox('sent'));
  document.querySelector('#archived').addEventListener('click', () => load_mailbox('archive'));
  document.querySelector('#compose').addEventListener('click', compose_email);
  document.querySelector('#compose-form').onsubmit = sendmail;
  /*const emaildetails = document.createElement('div').setAttribute('id','email-details');
  document.body.append(emaildetails);*/
  // By default, load the inbox
  load_mailbox('inbox');
  
});

查看是否是这个问题

  • TAG:
相关文章
随机推荐
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航