DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> prototype框架中美元符號$用法分析
prototype框架中美元符號$用法分析
編輯:關於JavaScript     

本文實例講述了prototype框架中美元符號$用法。分享給大家供大家參考,具體如下:

prototype是實現面向對象的一個重要工具,是javascript的一個不錯的框架。
用jquery的人都知道,jquery中也有$美元符號,prototype中呢,也有$,他們有什麼區別呢。

1、prototype中$()的用法

prototype寫法 $("test") 或者 $$("#test"), 他相當於js中document.getElementById("test");
jqueryp寫法 $("#test") ,他也相當於js中document.getElementById("test");

2、prototype中的$$()用法

jquery寫法 $("div") 他相當於document.getElementsByTagName('div')
如果prototype也想簡單取得頁面中所有div元素,就不能這樣寫了。
prototype寫法  $("div") 他相當於document.getElementById("div")
prototype寫法  $$("div") 他相當於document.getElementsByTagName('div')
prototype寫法 $$("input[value=tank]") 取得頁面中輸入框值為tank的標簽,其實和jquery差不多,只不過多了一個$符號而已

3、prototype中的$A()用法

$A 主要是用來將可當作數組使用的任意集合(如 NodeList、許多 DOM 方法返回的 HTMLCollection 或函數對象的 arguments 屬性)轉換為一個真正的 Array 對象。下面四種方法都可以隱藏頁面中的div標簽

$A($$('div')).each(Element.hide); 
$A($$('div')).map(Element.extend).invoke("hide"); 
//從思想上來看,下面二種寫法,我在用jquery時,也經常用 
$A($$('div')).each(function(name,index){ 
 name.style.display='none'; 
 alert(name.innerHTML); 
 }) 
 $A($$('div')).each(function(name,index){ 
 $(name).hide(); 
}) 

如果例子中出現TypeError: element.style is undefined { message="element.style is undefined",  more...},請把你的prototype的版本升一下級

4、prototype中的$F()用法

個人覺得$F的用法,被設計出來是為了更方便的取表單數據,不過它比較單一,因為他只能通過ID來取

<input name="name" value="tank" id="name">
$F("name")  正確的

<input name="name" value="tank"  >
$F("name")  不正確的,TypeError: element is null { message="element is null", more...}

5、prototype中的$H()用法

當你傳入一下對像作為函數的參數時,$H將輸入對像一個prototype的專有hash對像。$H感覺像是轉換器,啟到一個改變形勢的作用

$H({name:'tank',sex:1,height:'170cm'}).toArray()
[["name", "tank"], ["sex", 1], ["height", "170cm"]]
$H({name:'tank',sex:1,height:'170cm'}).toQueryString()
"name=tank&sex=1&height=170cm"

6、prototype中的$R()用法

$R函數和原始的構造函數具有完全相同的參數:start 和 end 分別表示下限值和上限值(兩個參數的類型必須一致),exclusive 表示是否排除上限值(參數 end)。默認不排除上限值。

$R的實例描述了一系列遵循某種規則變化的值,如數字、 文本或其它在語義上支持相鄰值推導的類型

能過例子,來說明,最容易讓人記住了

$A($R("a","z",true)).join(',') //加了參數true 
"a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y" 
$A($R("a","z")).join(',') //沒有加 
"a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z" 

$R根據規則推測了一個$R對像,$A將這個對像轉換成了數組,用,號將數組轉換成字符串.

$R(0, 10).each(function(value){ 
 alert(value*value); 
}); 
//結果和上面的一樣的,但是each解釋的對像是不一樣的。 
$A($R(0, 10)).each(function(value){ 
 alert(value*value); 
}); 

如果報這樣的錯誤 ,TypeError: value.succ is not a function { message="value.succ is not a function", more...},請升級

7、prototype中的$w()用法

$w將以空格是為分隔符的字符串,轉換成數組,根php的explode(" ",$string);功能是一樣的,針對性比較強。

$w("aa bb").join(',')

如果報這樣的錯誤 ,ReferenceError: $w is not defined { message="$w is not defined",  more...},請升級

希望本文所述對大家JavaScript程序設計有所幫助。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved