Class(類)
一個JavaScript類(相對于CSS的類),是一個功能可以重複使用的對象。若要更多地了解MooTools類,你可以看看Valerio的這篇簡單介紹的文章(MooTools類——怎樣使用它們 )。我也同時推薦David Walsh的MooTools類模闆 。
Utilities(實用工具)
實用工具(Utilities)提供了更多精良的選擇邏輯,包括domready事件、可以管理AJAX調用的工具、可以輕松管理cookie的工具,甚至還有”swiff“功能,可以提供JavaScript接口給ActionScript。
FX(效果)
這可能是MooTools最有趣的部分了。通過Fx(效果),你可以建立”Tween“(補間動畫)和”morph“(形變動畫)效果,進而讓你的DOM對象動起來。
- 在兩個樣式屬性值之間建立一個動畫變形(比如讓一個div平緩地變大) – var myFx = new Fx.Tween(element);
- 在多個不同的屬性值之間建立一個動畫變形(比如在讓一個div平緩變大的過程中,讓它的邊框越來越初,同時變換它的背景顔色) – var myFx = new Fx.Morph(element);
Request(請求)
包含一些可以輕松處理JavaScript XMLHttpRequest(AJAX)功能的工具。為了減輕整個請求/響應(request/response)帶來的痛苦,Request對象還有一些專門用來處理HTML和JSON對象(JavaScript對象表示法) 的擴充。
.getElements();
.getElements();和.getElement();非常類似,不過它傳回所有符合要求的元素,并組成一個數組。你可以想使用.getElement();方法那樣使用.getElements();。
- // 選擇ID為”body_wrap“的元素下面的所有連結
- $ ( 'body_wrap' ). getElements ( 'a' );
- // 選擇ID為”body_wrap“的元素下面的所有CSS類名為”special_anchor_class“的子元素
- $ ( 'body_wrap' ). getElements ( '.special_anchor_class' );
- <div id = "body_wrap" >
- <a href = "#" > anchor </a>
- <a href = "#" > another anchor </a>
- <a class = "special_anchor_class" href = "#" > special anchor </a>
- <a class = "special_anchor_class" href = "#" > another special anchor </a>
- </div>
用運算符包含和排除結果
運算符
MooTools 1.2支援幾種運算符,可以讓你進一步精簡你的選擇操作。你可以在.getElements();中使用這些運算符來包含或者排除特定的結果。MooTools支援4種運算符,每一種都可以用來通過名字(name)選擇一個input元素。
- = : 等于
- //選擇name為”phone_number“的input元素
- $ ( 'body_wrap' ). getElements ( 'input[name=phone_number]' );
- // 選擇name以”phone“開頭的input元素
- $ ( 'body_wrap' ). getElements ( 'input[name^=phone]' );
- $= : 以……結束
- // 選擇name以數字(number)結束的input元素
- $ ( 'body_wrap' ). getElements ( 'input[name$=number]' );
- != : 不等于
- // 選擇名字不等于”address“的input元素
- $ ( 'body_wrap' ). getElements ( 'input[name!=address]' );
- <div id = "body_wrap" >
- <input name = "address" type = "text" />
- <input name = "phone_number" type = "text" /> <!-- 上面的所有示例代碼都将選中這個元素 -->
- </div>
(Fdream注:input在這裡隻是作為一個例子,你同樣可以使用這種方式選擇其他元素,比如div、a等等 。)
要使用運算符,你必須首先指定元素的類型(比如這裡的input),然後指定你要過濾的屬性(比如這裡的name),再加上你的 運算符,最後選擇你的過濾字元串。
基于元素順序的選擇器
even(偶數選擇)
通過這個簡單的選擇器,你可以選擇序号為偶數的元素。注意: 這個選擇器從0開始計數,是以第一個元素是偶數序的。
- // 選擇序号為偶數的div
- $$ ( 'div:even' );
- <div> Even </div> <!-- 上面的代碼将選中這個元素 -->
- <div> Odd </div>
- <div> Even </div> <!-- 上面的代碼将選中這個元素 -->
- <div> Odd </div>
odd(奇數選擇)
和even一樣,隻不過它選擇序号為奇數的元素。
- // 選擇所有序号為奇數的div
- $$ ( 'div:odd' );
- <div> Even </div>
- <div> Odd </div> <!-- 上面的代碼将選中這個元素 -->
- <div> Even </div>
- <div> Odd </div> <!-- 上面的代碼将選中這個元素 -->
複制一個數組
$A
MooTools提供了一個簡單的方式——通過$A函數來複制一個數組。讓我們像剛才那樣使用變量建立一個數組:
- // 建立你的數組變量
- var myArray = $ ( 'body_wrap' ). getElements ( 'div' );
複制一個數組(建立該數組的副本):
- // 建立一個新的變量名,命名為”myCopy“,然後把”myArray“的副本指派給它
- var myCopy = $A ( myArray );
基本方法
.get();
這個工具可以讓你擷取元素的屬性(property)。元素的屬性是組成一個HTML元素的各種不同部分,例如src、value、name等等。使用.get();方法非常簡單:
- // 下面這行将傳回id為“id_name”的元素的html标記名(div、a、span……)
- $ ( 'id_name' ). get ( 'tag' );
- <div id = "body_wrap" >
- <span id = "id_name" > Element </span> <!-- 上面的代碼将傳回“span” -->
- </div>
你可以使用.get();方法獲得更多屬性,而不隻是html标記名:
- id
- name
- value
- href
- src
- class(如果有多個CSS類名,則将傳回全部CSS類名)
- text (一個元素的文本内容)
- 等等…