本文實例講述了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來取
$F("name") 正確的
$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程式設計有所幫助。