我的博客

博客园 首页 新随笔 联系 订阅 管理

Prototype.js的一些简便用法
Sam Stephenson 的 Prototype JavaScript framework 库,的确是博大精深。我先介绍几个我目前了解的简单方法把。
1. $()方法 --按ID查找元素
$()的功能就是等同于 document.getElementById() ,不过更简便(很短  ),更强大。它可以传入多个id作为参数然后 $() 返回一个带有所有要求的元素的一个 Array 对象。

$() 方法是在DOM中使用过于频繁的 document.getElementById() 方法的一个便利的简写,就像这个DOM方法一样,这个方法返回参数传入的id的那个元素。

比起DOM中的方法,这个更胜一筹。你可以传入多个id作为参数然后 $() 返回一个带有所有要求的元素的一个 Array 对象。下面的例子会向你描述这些。

<HTML>
<HEAD>
<TITLE> Test Page </TITLE>
<script src="prototype-1.3.1.js"></script>

<script>
    function test1()
    {
        var d = $('myDiv');
        alert(d.innerHTML);
    }

    function test2()
    {
        var divs = $('myDiv','myOtherDiv');
        for(i=0; i<divs.length; i++)
        {
            alert(divs[i].innerHTML);
        }
    }
</script>
</HEAD>

<BODY>
    <div id="myDiv">
        <p>This is a paragraph</p>
    </div>
    <div id="myOtherDiv">
        <p>This is another paragraph</p>
    </div>

    <input type="button" value=Test1 onclick="test1();"><br>
    <input type="button" value=Test2 onclick="test2();"><br>

</BODY>
</HTML>

这个方法的另一个好处就是你可以传入id字符串或者元素对象自己,这使得在创建可以传入任何形式参数的方法的时候,它变得非常有用。


2. $F()方法 --返回任何输入表单控件的值
$F()方法又是一个非常方便的缩写。它可以返回任何输入表单控件的值,如文本框或下拉框。这个方法可以传入元素的id或者元素自己。
<script src="Prototype.js"></script><script>  
function test3() 
  {      
 alert(  $F('userName')  );  
}</script>
<input type="text" id="userName" value="名字">
<input type="button" value=Test3 onclick="test3();">
 
$F()方法是另一个非常受欢迎的简写。它可以返回任何输入表单控件的值,如文本框或下拉框。这个方法可以传入元素的id或者元素自己。

<script>
    function test3()
    {
        alert(  $F('userName')  );
    }
</script>

<input type="text" id="userName" value="Joe Doe"><br>
<input type="button" value=Test3 onclick="test3();"><br>


3. 使用Try.these()方法
Try.these() 方法使得实现当你想调用不同的方法直到其中的一个成功正常的这种需求变得非常容易,他把一系列的方法作为参数并且按顺序的一个一个的执行这些方法直到其中的一个成功执行,返回成功执行的那个方法的返回值。
在下面的例子中, xmlNode.text在一些浏览器中好用,但是xmlNode.textContent在另一些浏览器中正常工作。使用Try.these()方法我们可以得到正常工作的那个方法的返回值。
<script>
function getXmlNodeValue(xmlNode){
    return Try.these(
        function() {return xmlNode.text;},
        function() {return xmlNode.textContent;)
        );
}
</script>
4. Ajax
prototype.js的ajax对象
我想prototype.js里的ajax对象肯定吸引了不少人,大量封装好的ajax逻辑的类,对于我们这些初学者使用ajax有很大的帮助。
以下用一个我的具体使用例子来解释:效果看这里
1. Ajax.Request
你可以这样创建它
var url = 'http://yoursever/your/your';
var pars = 'id=xxx';
var myAjax = new Ajax.Request(
                    url,
                    {method: 'get', parameters: pars, onComplete: yourfunction}
                    );
parameters表示你要传递的参数,比如id=xxx这些。
XMLHttpRequest在HTTP请求期间的阶段分为:Loading, Loaded, Interactive, Complete。
Ajax.Request对象在任何一个阶段都可以调用你自定义的方法,形式如onxxxxxxx:yourfunction,比如我们上面提到的onComplete,是最常用的。
例子中实际使用的代码
function sends(id)
{
    c = $('content');
    o = $('old-content');
    c.innerHTML = "<div id='loading'>载入中...</div>";
    o.innerHTML = c.innerHTML;
    c.style.display = 'none';
    o.style.display = 'block';
    var myAjax = new Ajax.Request('content_'+ id + '.html', {method: 'get', onComplete:updates});
}
function updates(response)
{
    new Effect.Fade($('old-content'));
    new Effect.Appear($('content'));
    $('content').innerHTML = response.responseText;
}
----------------------------------------------------------------------------------------------------------
电子版下载
https://files.cnblogs.com/ghostljj/prototype.js_1.4版开发者手册.rar
prototypejs下载主页
http://www.prototypejs.org/

posted on 2007-05-15 11:09  Jackey  阅读(1365)  评论(0编辑  收藏  举报