当Web HTML解释器读取脚本标记下的代码时?

时间:2017-04-19 12:09:52

标签: jquery html dom web

我在页面的头部插入了一个脚本,如下所示

<head>
   ... load jQuery ....
   <script>var bbody = $('body');</script>
</head>
<body>
  ....

   <script>console.log(bbody);</script>
   <script>console.log($('body'));</script>
</body>

并且第一句话中的console.log的结果总是undefined,但第二句是正确的对象,所以我的问题是:

  1. ¿<script>上的代码总是在解释器上执行时读取里面的代码?

2 个答案:

答案 0 :(得分:2)

它的层次结构。对于第一个<body>标记,<script>仍未显示在图片中。所以,undefined

您可以使用$(document).ready定义bbody以确保首先加载dom。

$(document).ready(function(){
  var bbody = $('body');
});

答案 1 :(得分:1)

var bbody = $('body');包裹在$(document).ready中,以确保在您要加载正文标记时存在。

$(document).ready(function(){
    var bbody = $('body');
});