根据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