求解释~~
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错误的。放到下面正确时因为上面你加载过了。道理就是这样的。 --------------------编程问答--------------------
嗯 谢谢那jQuery呢? --------------------编程问答--------------------
嗯谢谢, 那jQuery呢? --------------------编程问答--------------------
写法1:
$(document).ready(function(){
//你的代码
});
写法2:
$(function(){
//你的代码
});
写法3:
$().ready(function(){
//你的代码
})
以上的三种写法都是一样的功能 楼主demo3里里边jQuery是在页面的DOM加载完毕之后执行的 所以不会报错 --------------------编程问答-------------------- 哎。。。 看来 我原理还是没有搞明白, - - 这demo 都是我乱试 试出来的。。 --------------------编程问答--------------------
JS是解释执行的 并且是单线程的 页面在加载或者执行JS的时候会阻塞页面其他内容的加载 就像demo2里 页面解析到js代码段会停止页面的加载 优先执行JS 所有报错了 而在demo3中js在页面解析时加载 执行是在页面DOM加载完毕之后 所以不会报错 --------------------编程问答-------------------- jquery 无论写哪,文件加载完就会执行,而js往往需要一个触发事件,否则的话,就应该将js代码写在调用处之后,这样就不会出现未加载的问题
补充:Java , Web 开发