1.Jquery是优秀的Javascrīpt框架,$是jquery库的申明,它很不稳定(我就常赶上),换一种稳定的写法jQuery.noConflict(); jQuery(document).ready(function(){});
使用jQuery的好处是它包装了各类浏览器版本对DOM对象(javascript的DOM对象你应该知道吧,就是它了)的操做.
好比jquery写法:javascript
$("div p"); // (1) $("div.container"); // (2) $("div #msg"); // (3) $("table a",context); // (4) $("#myId"); //(5)
第一行代码获得全部<div>标签下的<p>元素。第二行代码获得class 为container的<div>元素,第三行代码获得<div>标签下面id为msg的元素。第四行代码获得context为 上下文的table里面全部的链接元素。第五行代码获得id为myid的全部元素
若是你熟悉CSS,你会以为这些写法很眼熟!对了。正是。看出奥妙了吧。jquery就是经过这样的方式来找到Dom对象里面的元素。跟CSS的选择器相相似。
如今回答你的具体问题吧html
$(document).ready(function(){ alert("hello"); });(1)
<body onload="alert('hello');">(2)
上面两段代码是等价的。但代码1的好处是作到表现和逻辑分离。而且能够在不一样的js文件中作相同的操做,即$(document).ready (fn)能够在一个页面中重复出现,而不会冲突。基本上Jquery的不少plugin都是利用这个特性,正由于这个特性,多个plugin共同使用起 来,在初始化时不会发生冲突。
若是咱们在java
$(document).ready(function(){ 加入的内容 });
加入内容jquery
$(".btn-slide").click(function(){ alert("你单击了a标签中class等于btn-slide的链接"); });
则表示当咱们单击class=btn-slide的超级链接时弹出“你单击了a标签中class等于btn-slide的链接”对话框.
如此方便易用,所以使用jquery是一个不错的选择。
2.window.onload = function(){ alert("welcome"); }
这样的写法做用是但愿在页面加载完,自动执行定义js代码(function)。
$(document).ready(function(){.... })这个函数是用来取代页面中的window.onload;
document.ready()和传统的方法<body onload=”load()”> 类似,不一样的是onload()的方法是在页面加载完成后才发生,这包括DOM元素和其余页面元素(例如图片)的加载,所以,使用document.ready()方法的执行速度比onload()的方法要快。
Javascript 只有在DOM元素已经定义之后才能够对其执行某种操做,jQuery使用document.ready来保证所要执行的代码是在DOM元素被加载完成的状况下执行。
好比:
复制代码 代码以下:浏览器
<script type="text/javascript"> $(document).ready(function () { alert("个人第一个jQuery代码!"); }); </script>
这段代码的意思是:当Dom Tree加载完成后,显示警告信息。document.ready()和传统的方法<body onload=”load()”> 类似,不一样的是onload()的方法是在页面加载完成后才发生,这包括DOM元素和其余页面元素(例如图片)的加载,所以,使用document.ready()方法的执行速度比onload()的方法要快。
3.注意:
最后要注意两点:
确保在 <body> 元素的onload事件中没有注册函数,不然可能不会触发$(document).ready()事件。(
我尝试用下面的例子来演示这个状况,可是没有成功,因此我想这种状况只是可能发生。)
复制代码 代码以下:app
<html> <head> <title>My second jQuery</title> <script type="text/javascript" src="/js/jquery.js"></script> <script type="text/javascript"> //下面是load的函数含有jquery注册函数$ function load(){ $("p").append("<b>Hello</b>"); } //下面是jQuery的代码 $(document).ready(function () { $("p").append("个人第一个jQuery代码!"); $("p").append("<b>Hello</b>"); }); </script> </head> <body onload="load()"> <h2>jQuery 简单例子2</h2> <p>I would like to say: </p> </body> </html>
能够在同一个页面中无限次地使用$(document).ready()事件。其中注册的函数会按照(代码中的)前后顺序依次执行。框架