根據prototype的文檔,第一部分,utility method
1.$
$() 方法是prototype最基礎的方法。
它相當於對document.getElementById()方法做了封裝
語法如下:
$(id | element) -> HTMLElement
$((id | element)...) -> [HTMLElement...]
第一行:輸入一個參數,返回一個對象,或者null
第二行:輸入一個數組,返回一個對象數組
以table元素爲例,假設其id爲idSample,則如下三種用法將返回同樣的結果:
$('idSample');
$(idSample);
var obj = document.getElementById("idSample"); $(obj);
如果對返回的對象進行後續操作,需要進行檢查對象(數組的元素)是否爲null,以免產生javascript錯誤。
2.$$
$$(cssRule...) -> [HTMLElement...]
$$()方法用於根據給定的條件(CSS),在document中查找元素對象,以數組的形式返回
根據條件的不同,$$()用法相當靈活,相當於對document.getElementsByTagName(), prototype的getElementsByClassName()等方法進行了封裝。
常用的搜索條件有:
a. tagName 例如 $$('div');
b. id 例如 $$('#idSample');
c. 子元素 例如 $$('#navbar a', '#sidebar a');
子元素與父元素用空格表示,本例尋找兩個指定id的元素之內的所有鏈接對象
d. 屬性
例1: $$('#idSample a[rel]'); 指定對象中,所有具有rel屬性的鏈接
例2: $$('a[href="#"'); 所有href屬性的值爲#的鏈接
e. 樣式的class
例: $$('li.faux'); // -> 所有class爲faux的li元素
這是5種最基本的條件,在v1.5.1之後,還根據CSS 3增加了更多的條件,詳見prototype的手冊。
對於參與,必須使用字符串,不能像$()方法那樣,使用$(tr)的方式,必須使用$$('tr')
3.$A
$A(iterable) -> actualArray
將一個類似於數組的集合對象,轉換爲一個真正的數組對象
好處:可以使用Prototype提供的數組的各種擴展方法
4.$F
$F(element) -> value
獲取Form中某個元素的值
問題1: 參數,對象? Name? ID?
Q: Name, ID 都可以
問題2: 頁面中有多個form, 會怎麼樣?
Q: 不管哪個form的,找到哪個算哪個
其他:
如果指定的對象不存在,會導致javascript錯誤
5.$H
$H([obj]) -> Hash
將對象轉換爲一個map
6.$R
$R(start, end[, exclusive = false]) -> ObjectRange
返回一個範圍
可以是數字、字符、字符串,或者其他任意可以有範圍的對象
缺省情況下,包含定義時指定的上下邊界對象
7.$w
$w(String) -> Array
以空格爲分隔符,將字符串轉換爲數組
問題:如果有多個空格連在一起,效果是什麼?
結論:跟一個空格同樣處理
8.Try.these
Try.these(Function...) -> firstOKResult
給定function列表,依次執行,遇到執行成功的方法即停止,返回該方法的返回值
//不能貼附件哦,學習的樣例代碼如下:
http://download.csdn.net/source/453849#aa