当前位置:编程学习 > JAVA >>

求解释~~

demo1:
  <html>
  <head>
     <script type="text/javascript" src="jquery-1.4.2.js"></script>
    <script type="text/javascript">
  window.onload = function(){alert("111")};
  window.onload = function(){alert("222")};
    $(function() {
  
      alert("hello");
  
  });
  
  $(function() {
  
    alert("world");
  });
   
    </script>
  </head>
  <body>
  </body>
</html>

demo2:

<html>
  <head>
     <script type="text/javascript" src="jquery-1.4.2.js"></script>
    <script type="text/javascript">
  document.getElementById("mydiv").innerHTML = "dsafas";
</script>
  
  </head>
  <body>
     <div id = "mydiv"> </div>
    
  </body>
   <script type="text/javascript">
       // document.getElementById("mydiv").innerHTML = "dafdas";

   </script>
</html>

demo3:
<html>
  <head>
     <script type="text/javascript" src="jquery-1.4.2.js"></script>
<script type="text/javascript">
    $(function(){
  $("#mydiv").html("ddddddd");

});
alert("ddd");
</script>
  
  </head>
  <body>
     <div id = "mydiv"> </div>
    
  </body>
   
</html>



这点东西研究了一上午,虽然也知道结果....但是还是想寻求下各位其中的原理
尤其是demo2 和3 
用javascript 写在body上面 就执行不了,可是在body下面在用javascript写就能执行出来,
demo3 用jQuery 就能执行出来....

难道是 js 必须要等加载完后 才能执行?
 而jQuery 确实一个function结束后,就能立刻执行?

总觉得这理由有些牵强...

谢谢各位~~~

--------------------编程问答-------------------- 基本没看懂
js写在了head里面,需要人去调用啊 --------------------编程问答-------------------- js是顺序执行,从上到下加载,demo2中document.getElementById("mydiv").innerHTML = "dsafas";执行这句话时js回去找id等于mydiv的标签,因为你上面没有加载到所以会报js错误的。放到下面正确时因为上面你加载过了。道理就是这样的。 --------------------编程问答--------------------
引用 2 楼  的回复:
js是顺序执行,从上到下加载,demo2中document.getElementById("mydiv").innerHTML = "dsafas";执行这句话时js回去找id等于mydiv的标签,因为你上面没有加载到所以会报js错误的。放到下面正确时因为上面你加载过了。道理就是这样的。


嗯 谢谢那jQuery呢? --------------------编程问答--------------------
引用 2 楼  的回复:
js是顺序执行,从上到下加载,demo2中document.getElementById("mydiv").innerHTML = "dsafas";执行这句话时js回去找id等于mydiv的标签,因为你上面没有加载到所以会报js错误的。放到下面正确时因为上面你加载过了。道理就是这样的。


嗯谢谢, 那jQuery呢? --------------------编程问答--------------------
引用 4 楼  的回复:
引用 2 楼 的回复:
js是顺序执行,从上到下加载,demo2中document.getElementById("mydiv").innerHTML = "dsafas";执行这句话时js回去找id等于mydiv的标签,因为你上面没有加载到所以会报js错误的。放到下面正确时因为上面你加载过了。道理就是这样的。


嗯谢谢, 那jQuery呢?


写法1:
$(document).ready(function(){
//你的代码
});
写法2:
$(function(){
//你的代码
});
写法3:
$().ready(function(){
//你的代码
})

以上的三种写法都是一样的功能 楼主demo3里里边jQuery是在页面的DOM加载完毕之后执行的 所以不会报错 --------------------编程问答-------------------- 哎。。。 看来 我原理还是没有搞明白,  - - 这demo 都是我乱试  试出来的。。 --------------------编程问答--------------------
引用 6 楼  的回复:
哎。。。 看来 我原理还是没有搞明白, - - 这demo 都是我乱试 试出来的。。

JS是解释执行的 并且是单线程的 页面在加载或者执行JS的时候会阻塞页面其他内容的加载 就像demo2里 页面解析到js代码段会停止页面的加载 优先执行JS 所有报错了 而在demo3中js在页面解析时加载 执行是在页面DOM加载完毕之后 所以不会报错 --------------------编程问答-------------------- jquery 无论写哪,文件加载完就会执行,而js往往需要一个触发事件,否则的话,就应该将js代码写在调用处之后,这样就不会出现未加载的问题
补充:Java ,  Web 开发
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,