jquery物件的鏈式操作
首先來看乙個例子:
$(「#myphoto」).css(「border」,」solid 2px#ff0000」).attr(「alt」,」 good」);
對乙個jquery物件先呼叫了css()函式修改樣式,然後使用attr()函式修改屬性,這種呼叫方式象鏈一樣,所以稱為「鏈式操作」。
鏈式操作能夠讓**變得簡潔,因為往往可以在一條語句中實現以往多條語句才能完成的任務。比如如果不使用鏈式操作,需要用兩條語句才能完成上面的任務:
$(「#myphoto」).css(「border」,」solid 2px#ff0000」);
$(「#myphoto」).arrt(「alt」,」good」);
除了增加了**量,還呼叫了兩次選擇器,降低了速度。
在乙個較短的鏈式操作中,往往語句比較清晰,可以分步驟地對jquery物件實現各種操作。但是鏈式操作不應該太長,否則會造成語句難以理解,因為要檢視jquery物件當前的狀態並不是容易的事,尤其如果涉及jquery物件中元素的增刪操作是更加難以判斷。
並不是所有的jquery函式都可以使用鏈式操作。這與鏈式操作的原理有關,之所以可以實現鏈式操作是因為其中的每個函式返回的都是jquery物件本身。在jquery類庫的內部實現中,雖然很多的函式都返回jquery物件本身,但都是通過呼叫內部有限的幾個函式實現的,比如attr()函式設定屬性石,實際上最後呼叫了」jquery.each(object,callback,args)」方法。注意此方法不是jquery物件方法,jquery物件方法也有乙個each()函式,為」jquery.fn.each(callback,args)」,此函式最後同樣呼叫jquery.each函式:
each:function(callback,args)
下面看一看jquery.each函式的返回結果:
each.function(object,callback,args)
object是jquery.fn物件,即jquery物件。最後返回的還是jquery物件。
可以使用下面的原則判斷乙個函式返回的時候是jquery物件,即是否可以用於鏈式操作。
除了獲取某些資料的函式,比如獲取屬性值「attr(name)」,獲取集合大小「size()」這些函式明顯是返回資料的。除了這些函式之外的jquery函式都可以用於鏈式操作,比如設定屬性「attr(name.value)」。
「$」變數的使用
「$」變數是「jquery」變數的引用。「jquery」變數是全域性變數,jquery物件是指「jquery.fn」,不要混淆。「jquery」變數類似於靜態類,上面的方法都是靜態方法,可以在任何時刻呼叫。比如「jquery.each」。「jquery.fn」是例項方法,只能在jquery物件上呼叫。比如「jquery.fn.each()」方法只能通過」$(『#id』).each」這種形式呼叫。
前面提到,可以使用」$」代替「jquery」,因為在jquery的內部有如下實現:
jquery=window.jquery=window.$
所以「$」變數和「jquery」變數實際上是window物件的屬性,也就是全域性變數。可以在頁面上得任何地方呼叫。
jQuery物件的鏈式操作
jquery物件的鏈式操作 首先來看乙個例子 myphoto css border solid 2px ff0000 attr alt good 對乙個jquery物件先呼叫了css 函式修改樣式,然後使用attr 函式修改屬性,這種呼叫方式象鏈一樣,所以稱為 鏈式操作 鏈式操作能夠讓 變得簡潔,因...
物件導向之鏈式操作
鏈式操作的格式是 obj 方法或屬性 方法或屬性 方法或屬性 方法或屬性一般都是類中定義的函式。下面是乙個事例 class student public function setage age public function getname public function getage stu ne...
jQuery 基礎 操作 jQuery 物件
操作 jquery 物件 檢查數量 父子鄰居關係 過濾元素的集合 遍歷 用 jquery 建立 html 元素 dom 物件 元素 與 jquery 物件 前者是瀏覽器的網頁頁面中渲染出來的元素,而後者是對一組 dom 元素的包裝。檢查 dom 物件 if obj.nodetype 檢查 jquer...