DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> jQuery的核心:jQuery插件機制
jQuery的核心:jQuery插件機制
編輯:關於JavaScript     

學過上一節課的朋友我想都知道了$符號的作用了,那麼,今天我們再深入的學習一下jQuery的核心。

jQuery對象訪問:
each(callback)

根據我的理解,each是jQuery中的一種循環機制。一般與this關鍵字配合使用。學過程序的朋友都知道程序中的循環方式有以下幾種do...while()、while()、for(expression1,expression2,expression3)以及C#和javaEE中JSTL標簽中獨有的forEach循環。jQuery中的each循環與forEach循環類似。具體使用方法在本節案例中講述。




$("Element").length
表示某個對象在HTML頁面中的數量,與size用法一致,此方法不帶有()。




$("Element").size()
表示某個對象在HTML頁面中的數量,與length用法一致。





$("Element").get()
表示獲得某個元素在HTML頁面中的集合,以數組方式構建。




$("Element").get(index)
作用同上,如果get方法裡面帶有數字則表示獲得數組中的第幾個元素,索引從0開始。




$("Element").get().reverse()
表示將獲取到得dom元素集合構建成的數組進行反向。比如默認排序是1,2,3使用了此方法則為3,2,1




$("Element").index($("Element"))
搜索index中所獲得的元素在所匹配對象元素中的索引值(從0開始計數),若沒有找到則返回-1。比如有5個div,其中第4個標簽的ID是#bar那麼$("div").index($("#bar"))所返回的索引值就是3。




jQuery插件機制:

$.extend
({
max:function(num1,num2){return num1 > num2 ? num1:num2;},
min:function(num1,num2){return num1 < num2? num1:num2;}
})

$.extend等同於jQuery.extend在這裡面的max和min是兩個自定義的函數,並且都有2個參數,在方法體內進行比較。方法體內使用的是條件表達式,與if條件判斷差不多。此條件表達式的意思是:如果num1>num2相比較後如果num1大於num2那麼返回“true”,那麼此方法返回“?”之後“:”之前的內容也就是num1,反之是num2。
調用的時候只要使用$.max(2,3)傳入任意的兩個參數,那麼將返回num2也就是數字3;$.min(7,8)則返回num1因為num1比num2小。$替換成jQuery完全沒有問題。




$.fn.extend
({
check:function()
{
return this.each(function() { this.checked = true; });
}

uncheck:function()
{
return this.each(function() { this.checked = false; });
}

})
此方法也是一種插件的實現方法,其中this表示是調用者當前所指dom對象,比如$("#abc").click(function(){this})這裡的this指的就是#abc這個dom對象。each在上面已經講解過了。在此插件方法extend中定義了兩個方法分別是check和uncheck。
比如:
$("input[@type=checkbox]").check()表示將input標簽的type屬性設置為選中,其中,中括號中的內容表示如果input的type屬性是checkbox的話,再設置為選中。
$("input[@type=radio]").uncheck()表示將input標簽的type屬性設置為未選中,其中,中括號中的內容表示如果input的type屬性是radio的話,再設置為未選中。





多庫共存:
有的時候我們可能在同一個頁面內調用多種js庫,比如即使用jQuery類庫又使用ProToType類庫,按理說沒有問題,但是他們都用到了“$”符號,因此為了避免與其他庫產生沖突,可以使用以下兩種方法將其區別開來。


jQuery.noConflict()
使用方法,var j=noConflict();表示j在jQuery中將代替"$"符號。




jQuery.noConflict(true)
使用方法,dom.query = jQuery.noConflict(true)則表示將$和jQuery的控制權都交還給原來的庫。比如你想要將jQuery嵌入一個高度沖突的環境。注意:調用此方法後極有可能導致插件失效。因此用的時候一定要考慮清楚。dom.query將代表"$"符號。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved