Prototype.js的一些簡便用法

來源:互聯網
上載者:User

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;
}
----------------------------------------------------------------------------------------------------------
電子版下載
http://files.cnblogs.com/ghostljj/prototype.js_1.4版開發人員手冊.rar
prototypejs下載首頁
http://www.prototypejs.org/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.