一些实用的函数这个类库带有很多预定义的对象和实用函数,这些东东的目的显然是把你从一些重复的打字中解放出来 。使用$()方法$() 方法是在DOM中使用过于频繁的 document.getElementById() 方法的一个便利的简写,就像这个DOM方法一样,这个方法返回参数传入的id的那个元素。比起DOM中的方法,这个更胜一筹。你可以传入多个id作为参数然后 $() 返回一个带有所有要求的元素的一个 Array 对象。
另外一个好处是,这个函数能传入用string表示的对象ID,也可以传入对象本身,这样,在建立其它能传两种类型的参数的函数时非常有用。使用$F()函数$F()函数是另一个大收欢迎的“快捷键”,它能用于返回任何表单输入控件的值,比如text box,drop-down list。这个方法也能用元素id或元素本身做为参数。
使用$A()函数$A()函数能把它接收到的单个的参数转换成一个Array对象。这个方法,结合被本类库扩展了的Array类,能方便的把任何的可枚举列表转换成或拷贝到一个Array对象。一个推荐的用法就是把DOM Node Lists转换成一个普通的Array对象,从而更有效率的进行遍历,
使用 $H() 函数$H()函数把一些对象转换成一个可枚举的和联合数组类似的Hash对象。使用$R()函数$R()是new ObjectRange(lowBound,upperBound,excludeBounds)的缩写。跳到ObjectRange 类文档可以看到一个关于此类的完整描述. 此时,我们还是先来看一个例子以展示这个缩写能代替哪些方法吧。其它相关的一些知识可以在Enumerable 对象文档中找到。使用Try.these()函数Try.these() 方法使得实现当你想调用不同的方法直到其中的一个成功正常的这种需求变得非常容易, 他把一系列的方法作为参数并且按顺序的一个一个的执行这些方法直到其中的一个成功执行,返回成功执行的那个方法的返回值。在下面的例子中, xmlNode.text在一些浏览器中好用,但是xmlNode.textContent在另一些浏览器中正常工作。 使用Try.these()方法我们可以得到正常工作的那个方法的返回值。<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>proSimple.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">--> <script type="text/javascript" src="prototype/prototype.js"></script> <script type="text/javascript"> function test0() { //根据id或对象本身获取对象 ,单个功能类似document.getElementById(); var d=$('myDiv'); //根据对象本身或ID获取对象本身的value var mybutton=$F('mybutton'); alert(mybutton+" : "+ d.innerHTML); } function test1() { //可以根据多个id,获取多个对象 var divs=$('myDiv','myOtherDiv'); for(var i=0;i<divs.length;i++) { alert(divs[i].innerHTML); } } function showOptions() { //获取对象的所有的Option元素 var someNodeList=$('lstEmployees').getElementsByTagName('option'); //根据元素集合创建对象 var nodes=$A(someNodeList); //遍历对象的各种元素的信息 nodes.each(function(node) { //获取选中的文本信息 innerText 获取文本信息,value用于获取数据 if(node.selected==true) { alert("selected Item"+node.innerText+":"+node.value); } //显示所有的文本的信息 alert(node.nodeName+" : "+node.innerHTML+" : "+node.innerText); }); } //方便构建查询字符串的应用 function testhash() { var a={ first:10, second:20, third:30 }; //将一个对象转换为Prototype的Hash对象的 var h=$H(a); //转换为查询字符串 alert(h.toQueryString()); //转换为JSON对象 alert("toJSON="+h.toJSON()); //获取健集合 alert("Keys="+h.keys()); alert("values="+h.values()); } function demoDollar_R() { var range=$(10,20,false); range.each(function(value,index) { alert(value); }); } </script> </head>
<body> <div id="myDiv"> <p> This is a paragraph </p> </div> <div id="myOtherDiv"> <p> This is another paragraph </p> </div> <input id="mybutton" type="button" value=Test1 οnclick="test0();"> <br> <input type="button" value=Test2 οnclick="test1();"> <br> <select id="lstEmployees" size="10" > <option value="5">Buchanan, Steven</option> <option value="8">Callahan, Laura</option> <option value="1">Davolio, Nancy</option> </select> <input type="button" value="Show the options" οnclick="javascript:showOptions();" > <input type="button" value="use Hash" οnclick="javascript:testhash();" > </body></html>
