from :
http://carrot.javaeye.com/blog/215536
jQuery是一款同prototype一樣優(yōu)秀js開發(fā)庫類,特別是對css和XPath的支持,使我們寫js變得更加方便!如果你不是個js高手又想寫出優(yōu) 秀的js效果,jQuery可以幫你達到目的!
下載地址:Starterkit (
http://jquery.bassistance.de/jquery-starterkit.zip)
jQuery Downloads (http://jquery.com/src/)
下載完成后先加載到文檔中,然后我們來看個簡單的例子!
<script language="javascript" type="text/javascript">
$(document).ready(function(){
$("a").click(function() {
alert("Hello world!");
});
});
<script>
上邊的效果是點擊文檔中所有a標簽時將彈出對話框,$("a") 是一個jQuery選擇器,$本身表示一個jQuery類,所有$()是構造一個jQuery對象,click()是這個對象的方法,同理$(document)也是一個jQuery對象,ready(fn)是$(document)的方法,表示當document全部下載完畢時執(zhí)行函數(shù)。
在進行下面內(nèi)容之前我還要說明一點$("p")和$("#p")的區(qū)別,$("p")表示取所有p標簽(<p></p>)的元素,$("#p")表示取id為"p"(<span id="p"></span>)的元素.
我將從以下幾個內(nèi)容來講解jQuery的使用:
1:核心部分
2:DOM操作
3:css操作
4:javascript處理
5:動態(tài)效果
6:event事件
7:ajax支持
8:插件程序
一:核心部分
$(expr)
說明:該函數(shù)可以通過css選擇器,Xpath或html代碼來匹配目標元素,所有的jQuery操作都以此為基礎
參數(shù):expr:字符串,一個查詢表達式或一段html字符串
例子:
未執(zhí)行jQuery前:
<p>one</p>
<div>
<p>two</p>
</div>
<p>three</p>
<a href="#" id="test" onClick="jq()" >jQuery</a>
jQuery代碼及功能:
function jq(){
alert($("div > p").html());
}
運行:當點擊id為test的元素時,彈出對話框文字為two,即div標簽下p元素的內(nèi)容
function jq(){
$("<div><p>Hello</p></div>").appendTo("body");
}
運行:當點擊id為test的元素時,向body中添加“<div><p>Hello</p></div>”
$(elem)
說明:限制jQuery作用于一個特定的dom元素,這個函數(shù)也接受xml文檔和windows對象
參數(shù): elem:通過jQuery對象壓縮的DOM元素
例子:
未執(zhí)行jQuery前:
<p>one</p>
<div>
<p>two</p>
</div><p>three</p>
<a href="#" id="test" onClick="jq()">jQuery</a>
jQuery代碼及功能:
function jq(){
alert($(document).find("div > p").html());
}
運行:當點擊id為test的元素時,彈出對話框文字為two,即div標簽下p元素的內(nèi)容
function jq(){
$(document.body).background("black");
}
運行:當點擊id為test的元素時,背景色變成黑色
$(elems)
說明:限制jQuery作用于一組特定的DOM元素
參數(shù): elem:一組通過jQuery對象壓縮的DOM元素
例子:
未執(zhí)行jQuery前:
<form id="form1">
<input type="text" name="textfield">
<input type="submit" name="Submit" value="提交">
</form>
<a href="#" id="test" onClick="jq()">jQuery</a>
jQuery代碼及功能:
function jq(){
$(form1.elements ).hide();
}
運行:當點擊id為test的元素時,隱藏form1表單中的所有元素。
$(fn)
說明:$(document).ready()的一個速記方式,當文檔全部載入時執(zhí)行函數(shù)。可以有多個$(fn)當文檔載入時,同時執(zhí)行所有函數(shù)!
參數(shù):fn (Function):當文檔載入時執(zhí)行的函數(shù)!
例子:
$( function(){
$(document.body).background("black");
})
運行:當文檔載入時背景變成黑色,相當于onLoad。
$(obj)
說明:復制一個jQuery對象,
參數(shù):obj (jQuery): 要復制的jQuery對象
例子:
未執(zhí)行jQuery前:
<p>one</p>
<div>
<p>two</p>
</div>
<p>three</p>
<a href="#" id="test" onClick="jq()">jQuery</a>
jQuery代碼及功能:
function jq(){
var f = $("div");
alert($(f).find("p").html())
}
運行:當點擊id為test的元素時,彈出對話框文字為two,即div標簽下p元素的內(nèi)容。
each(fn)
說明:將函數(shù)作用于所有匹配的對象上
參數(shù):fn (Function): 需要執(zhí)行的函數(shù)
例子:
未執(zhí)行jQuery前:
<img src="1.jpg"/>
<img src="1.jpg"/>
<a href="#" id="test" onClick="jq()">jQuery</a>
jQuery代碼及功能:
function jq(){
$("img").each(function(){
this.src = "2.jpg"; });
}
運行:當點擊id為test的元素時,img標簽的src都變成了2.jpg。
eq(pos)
說明:減少匹配對象到一個單獨得dom元素
參數(shù):pos (Number): 期望限制的索引,從0 開始
例子:
未執(zhí)行jQuery前:
<p>This is just a test.</p>
<p>So is this</p>
<a href="#" id="test" onClick="jq()">jQuery</a>
jQuery代碼及功能:
function jq(){
alert($("p").eq(1).html())
}
運行:當點擊id為test的元素時,alert對話框顯示:So is this,即第二個<p>標簽的內(nèi)容
get() get(num)
說明:獲取匹配元素,get(num)返回匹配元素中的某一個元素
參數(shù):get (Number): 期望限制的索引,從0 開始
例子:
未執(zhí)行jQuery前:
<p>This is just a test.</p>
<p>So is this</p>
<a href="#" id="test" onClick="jq()">jQuery</a>
jQuery代碼及功能:
function jq(){
alert($("p").get(1).innerHTML);
}
運行:當點擊id為test的元素時,alert對話框顯示:So is this,即第二個<p>標簽的內(nèi)容
注意get和eq的區(qū)別,eq返回的是jQuery對象,get返回的是所匹配的dom對象,所有取$("p").eq(1)對象的內(nèi)容用jQuery方法html(),而取$("p").get(1)的內(nèi)容用innerHTML
index(obj)
說明:返回對象索引
參數(shù):obj (Object): 要查找的對象
例子:
未執(zhí)行jQuery前:
<div id="test1"></div>
<div id="test2"></div>
<a href="#" id="test" onClick="jq()">jQuery</a>
jQuery代碼及功能:
function jq(){
alert($("div").index(document.getElementById('test1')));
alert($("div").index(document.getElementById('test2')));
}
運行:當點擊id為test的元素時,兩次彈出alert對話框分別顯示0,1
size() Length
說明:當前匹配對象的數(shù)量,兩者等價
例子:
未執(zhí)行jQuery前:
<img src="test1.jpg"/>
<img src="test2.jpg"/>
<a href="#" id="test" onClick="jq()">jQuery</a>
jQuery代碼及功能:
function jq(){
alert($("img").length);
}
運行:當點擊id為test的元素時,彈出alert對話框顯示2,表示找到兩個匹配對象
二:DOM操作
屬性
我們以<img id="a" scr="5.jpg"/>為例,在原始的javascript里面可以用var o=document.getElementById('a')取的id為a的節(jié)點對象,在用o.src來取得或修改該節(jié)點的scr屬性,在jQuery里$("#a")將得到jQuery對象[ <img id="a" scr="5.jpg"/> ],然后可以用jQuery提供的很多方法來進行操作,如$("#a").scr()將得到5.jpg,$("#a").scr("1.jpg")將該對象src屬性改為1,jpg。下面我們來講jQuery提供的眾多jQuery方法,方便大家快速對DOM對象進行操作
herf() herf(val)
說明:對jQuery對象屬性herf的操作。
例子:
未執(zhí)行jQuery前
<a href="1.htm" id="test" onClick="jq()">jQuery</a>
jQuery代碼及功能:
function jq(){
alert($("#test").href());
$("#test").href("2.html");
}
運行:先彈出對話框顯示id為test的連接url,在將其url改為2.html,當彈出對話框后會看到轉向到2.html
同理,jQuery還提供類似的其他方法,大家可以分別試驗一下:
herf() herf(val) html() html(val) id() id (val) name() name (val) rel() rel (val)
src() src (val) title() title (val) val() val(val)
操作
after(html) 在匹配元素后插入一段html
<a href="#" id="test" onClick="jq()">jQuery</a>
jQuery代碼及功能:
function jq(){
$("#test").after("<b>Hello</b>");
}
執(zhí)行后相當于:
<a href="#" id="test" onClick="jq()">jQuery</a><b>Hello</b>
after(elem) after(elems) 將指定對象elem或對象組elems插入到在匹配元素后
<p id="test">after</p><a href="#" onClick="jq()">jQuery</a>
jQuery代碼及功能
function jq(){
$("a").after($("#test"));
}
執(zhí)行后相當于
<a href="#" onClick="jq()">jQuery</a><p id="test">after</p>
append(html)在匹配元素內(nèi)部,且末尾插入指定html
<a href="#" id="test" onClick="jq()">jQuery</a>
jQuery代碼及功能:
function jq(){
$("#test").append("<b>Hello</b>");
}
執(zhí)行后相當于
<a href="#" onClick="jq()">jQuery<b>Hello</b></a>
同理還有append(elem) append(elems) before(html) before(elem) before(elems)請執(zhí)行參照append和after的方來測試、理解!
appendTo(expr) 與append(elem)相反
<p id="test">after</p><a href="#" onClick="jq()">jQuery</a>
jQuery代碼及功能
function jq(){
$("a"). appendTo ($("#test"));
}
執(zhí)行后相當于
<p id="test">after<a href="#" onClick="jq()">jQuery</a> </p>
clone() 復制一個jQuery對象
<p id="test">after</p><a href="#" onClick="jq()">jQuery</a>
jQuery代碼及功能:
function jq(){
$("#test").clone().appendTo($("a"));
}
復制$("#test")然后插入到<a>后,執(zhí)行后相當于
<p id="test">after</p><a href="#" onClick="jq()">jQuery</a><p id="test">after</p>
empty() 刪除匹配對象的所有子節(jié)點
<div id="test">
<span>span</span>
<p>after</p>
</div>
<a href="#" onClick="jq()">jQuery</a>
jQuery代碼及功能:
function jq(){
$("#test").empty();
}
執(zhí)行后相當于
<div id="test"></div><a href="#" onClick="jq()">jQuery</a>
insertAfter(expr) insertBefore(expr)
按照官方的解釋和我的幾個簡單測試insertAfter(expr)相當于before(elem),insertBefore(expr)相當于after (elem)
prepend (html) prepend (elem) prepend (elems) 在匹配元素的內(nèi)部且開始出插入
通過下面例子區(qū)分append(elem) appendTo(expr) prepend (elem)
<p id="a">p</p>
<div>div</div>
執(zhí)行$("#a").append($("div")) 后相當于
<p id="a">
P
<div>div</div>
</p>
執(zhí)行$("#a").appendTo($("div")) 后 相當于
<div>
div
<p id="a">p</p>
</div>
執(zhí)行$("#a").prepend ($("div")) 后 相當于
<p id="a">
<div>div</div>
P
</p>
remove() 刪除匹配對象
注意區(qū)分empty(),empty()移出匹配對象的子節(jié)點,remove(),移出匹配對象
wrap(htm) 將匹配對象包含在給出的html代碼內(nèi)
<p>Test Paragraph.</p> <a href="#" onClick="jq()">jQuery</a>
jQuery代碼及功能:
function jq(){
$("p").wrap("<div class='wrap'></div>");
}
執(zhí)行后相當于
<div class='wrap'><p>Test Paragraph.</p></div>
wrap(elem) 將匹配對象包含在給出的對象內(nèi)
<p>Test Paragraph.</p><div id="content"></div>
<a href="#" onClick="jq()">jQuery</a>
輕量級啊,比 prototype,ext 輕量多了.
posted on 2008-10-07 17:59
henry1451 閱讀(177)
評論(0) 編輯 收藏