Javascript 从.js文件运行时,document.getElementById(“main”)返回null,在控制台中工作正常

Javascript 从.js文件运行时,document.getElementById(“main”)返回null,在控制台中工作正常,javascript,html,null,Javascript,Html,Null,因此,标题很好地概括了这一点。我的头撞到这个了。 我知道空错误通常是由于时间原因而发生的,因为我要求它在加载文档之前在文档中查找某些内容。然而,在我的JS代码的前面,我能够毫无问题地获取ElementsByTagname。另外,整个js函数的级联都是从window.onload开始的,所以文档已经准备好了 在.html文件中证明其正确性: <section id="main"> <header> <a href="#">Enter

因此,标题很好地概括了这一点。我的头撞到这个了。
我知道空错误通常是由于时间原因而发生的,因为我要求它在加载文档之前在文档中查找某些内容。然而,在我的JS代码的前面,我能够毫无问题地获取ElementsByTagname。另外,整个js函数的级联都是从window.onload开始的,所以文档已经准备好了

在.html文件中证明其正确性:

<section id="main">

     <header>
        <a href="#">Enter Site</a>
     </header>

     <nav class="links">
        <ul>
           <li><a href="#">Galleries</a></li>
           <li><a href="#">Video</a></li>
           <li><a href="#">Albums</a></li>
           <li><a href="#">Pricing</a></li>
           <li><a href="#">Testimonials</a></li>
           <li><a href="#">Wedding Planner</a></li>
           <li><a href="#">Shopping Cart</a></li>
        </ul>
     </nav>

     <address>
        New Accents Photography &#9830;
        14 Mountain View Road &#9830;
        Ashland, OR  97521 &#9830;
        (541) 555-6002 
     </address>

     <article>
       <p>New Accents is photography studio specializing in wedding 
          portraiture; serving the
          needs of Southern Oregon and Northern California.
       </p>
       <p>We'll capture your wedding in whatever fashion you wish:
          from romantic to zany and all the styles in between.
       </p>
     </article>

     <footer>
        <span class="left">New Accents Photography &copy; 2015 (US)</span>
        <span class="right">
           <a href="#">About</a>
           <a href="#">Terms</a>
           <a href="#">Help</a>
        </span>
     </footer>

  </section>

从.js文件:

function displayThumbs(){
var figBox = document.createElement("figure");
figBox.setAttribute("id", "thumbnails");
for(var i = 0; i < allSheets.length; i++)
{
    var sheetImg = document.createElement("img");
    var imgName = allSheets[i].title + "_small.png";
    sheetImg.setAttribute("src", imgName);
    sheetImg.title = allSheets[i].title;
    sheetImg.onclick = showSheet();
    figBox.appendChild(sheetImg);
}
var thisMain = document.getElementById("main");
thisMain.appendChild(figBox);
}
函数displaytumbs(){
var figBox=document.createElement(“图”);
setAttribute(“id”、“缩略图”);
对于(变量i=0;i
将脚本移到页面底部。或者移到
onDocumentReady
中。我已经编辑了这个问题,因为我不认为我清楚地说明了我的JS函数是从window.onload开始的,window.onload加载第一个函数,后者加载第二个函数,等等。在前面的函数中,我可以通过标记名检索元素,没有问题,所以“main”还不可用是没有意义的。使用“延迟”解决了这个问题,尽管它不能解释为什么我可以访问其他元素节点,但不能访问这个节点。