实用方法

$()函数:$>document.getElementById根据Id返回元素,所不同的是他可以返回多个元素

<div id="div1" class="c1">The Content of Div1</div>
<div id="div2" class="c1">The Content of Div2</div>
$("div1","div2")// returns div1 and div2

值得一提的是在1.5中不再提倡使用Element.hide(elementId)的方法而是直接使用DOM扩展的方法$(elementId).hide();也不提倡使用方法['item1','item2','item3'].each(Element.hide)取而代之的是$('item1','item2','item3').invoke('hide');

$$(cssRule)方法:就像你写Css文件是使用的标签一样,他根据CSS约束返回对应的元素,它已经可以准确的检测在页面中使用Css的元素并且返回

$$("div")//返回div标签的元素(集合) 相当于document.getElementsByTagName("div")
$$("#Content")//返回id="Content" 的元素 不用说了 相当于$("Content")
$$("li .myli")//返回class="myli" 的li元素(集合)
$$("#Content a[rel]")//返回id="Content" 的a元素 且有rel 属性
$$("a[href='#']") //返回所有href="#" 的a元素
$$("#Content a[rel]","a[href="#"]")//和$方法一样可以根据多的约束返回

或许你会忽然觉得好像一下子不知道Css语法了一样,的确,看了他们的官方文档之后才明白,$$(CssRule)方法支持Css2.1,其实上面的例子无非就是多了个诸如[Attr=Value]的东西,但是这已经相当有用了

cssRule是新版本的Prototype 中新增的功能.cssRule是一个类型为Selector.Selector 类通过大量的正则表达式将cssRule解析

在使用$$(cssRule)方法的时候要注意性能的问题,由于$$(cssRule)调用了document.getElementByTagName("*") 这样返回了页面上所有的元素,页面比较大的时候速度会比较慢

$A(iterable): iterable:可重复的 该函数能把它接收到的单个的参数转换成一个Array对象,这样可以用each之类的方法遍历

var paras=$A(document.getElementsByTagName('p'));
paras.each(Element.hide);//对每个元素调用hide 方法
$(paras.last()).show();//last()方法是Prototype对Array的扩展返回最后一个元素
//以上使用没有考虑paras的元素是否有hide 方法, 下面提供了方法可以转换
paras.map(Element.Extend).invoke("hide");
//$A()还可以使用在函数的arguments对象上
function foo()
{
    $A(arguments).each(function (arg){ alert(arg);} );//alert each argument
}

$F(formElemntId):该方法能返回表但中任意元素的值包括input CheckBox Select List .它调用了Form.Element.getValue.Refer 方法,可以参考Form.html

$H([obj]):该方法可以将可枚举对象转换成Hash型的数组

var json={first:"10",second:"20",third:"30"};
var hash=$H(json);
alert(hash["first"]);//alert 10
//这里也可以直接用json.first输出,但是如果用hash["0"]或者hash[0] 之类的索引就会出现 undefined

var array=new Array("First","Second","Third");
var hash=$H(array);
alert(hash["1"]);// alert Second
alert(hash[1]);//also alert Second
//由上面两行可以看出数组Hash后仍然保留着数组的下标访问方法,只是添加了用Key索引的方法

var array=new Array("First","Second","Third");
array.each(function (str,index){alert("下标"+index+":"+str);});
//Array 也有each方法 这是Prototype Framework添加的

$R(下标,上标,exclusive(是否唯一)=true);由上标和下标产生Enumerable(可枚举的)返回

$R(1,10).include(10);// true include()是Array扩展方法
var Enumerable=$R(0,2);
Enumerable.each(function (t){alert(t);});
var array=new Array();
array=$A(Enumerable);
alert(array[1]);

$w(string):该方法将字符串转换成数组(注意w是小写)

var str="This is a Demo";
var Enumerable=$w(str);
Enumerable.each(function (subStr){alert(subStr);});
alert(Enumerable[1]);

Try These看例子吧

function getInnerText(dom)
{
    return Try.these(
        function (){return dom.innerHTML.toString().stripTags();},/* For FireFox*/
        function (){return dom.innerText;} /* For IE*/
);
}

The Bold Content in div3

document.getElementsByClassName(className[,element])根据className查找DOM结点,element为基元素

<body>
   <div id="one" class="foo">Singleclassname</div>
   <divid="two"class="foobarthud">Multipleclassnames</div>
   <ul id="list">
       <li id="item_one" class="thud">Listitem1</li>
       <li>Listitem2</li>
       <li id="item_two" class="thud">Listitem3</li>
   </ul>
</body>

document.getElementsByClassName("foo");// 返回所有class="foo"的元素
document.getElementsByClassName("thud",$("list"));// 返回所有class="thud" $("list")的子元素