代码在jsfiddle中工作,但在chrome中不起作用。 - 未捕获的TypeError:无法读取属性' style'未定义的

时间:2015-08-10 09:33:27

标签: javascript html css dom

我一直在为游戏制作一个简单的游戏菜单(我还没有。) 该代码在jsfiddle中完美运行 但是,当我打开我的本地html文档时,没有任何javascript工作,(console.log和其他代码在我的错误之前工作)并且我得到一个错误,在我的createMenu函数:第67行,表示 Uncaught TypeError:无法读取财产' style'未定义的

这里是createMenu函数的代码(也在jsfiddle上)

   var menu = document.getElementsByClassName("menu");
var menu2 = document.getElementsByClassName("menu2");
var createMenu = function()
{   
menu[0].style.display = "block";    <---- Error
menu[1].style.display = "block";
menu[2].style.display = "block";
menu2[0].style.display = "none" ;
menu2[1].style.display = "none" ;
menu2[2].style.display = "none" ;

};
createMenu();

注意:我尝试使用循环代替较少的代码执行display block / none,但它似乎根本不起作用,甚至在jfiddle中都没有。

var createMenu = function()
{
    var i = 0;
while (i <3 ) {
    i++;

menu[i].style.display = "block";
menu2[i].style.display = "none" ;
    }
};

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

这可能是因为您在head元素中加载了JS代码,这意味着JS在渲染您的正文之前执行。您必须等待完整的DOM加载或将脚本放在正文的末尾:

         <!-- ... -->
         <script src="your-script.js"></script>
     </body>
</html>