??xml version="1.0" encoding="utf-8" standalone="yes"?> Effect.Scale(''text1'', 200) 基本用法:prototype.jsl每个主要的c都分了一个Class,使用h很方?要生特定的效果,只要用new Class.function(<argument>)可以了.例如: 当点击Click Me的时?div2׃(x)交替隐藏或显C?注意,你可以给toggle加上无限个parameter,比如Element.toggle(''div2'',''div3'',''div4'',...)
]]>
函数?/td>
解释
举例
Element.toggle
交替隐藏或显C?/td>
Element.toggle(''div1'',''div2'')
Element.hide
隐藏
Element.hide(''div1'',''div2'')
Element.show
昄
Element.show(''div1'',''div2'')
Element.remove
删除
Element.remove(''div1'',''div2'')
Element.getHeight
取得高度
Element.getHeight(''div1'')
Toggle.display
和Element.toggle相同
Toggle.display(''div1'',''div2'')
Insertion.Before
在DIV前插入文?/td>
Insertion.Before(''div1'',''my content'')
Insertion.After
在DIV后插入文?/td>
Insertion.After(''div1'',''my content'')
Insertion.Top
在DIV里最前插入文?/td>
Insertion.Top(''div1'',''this is a text'')
Insertion.Bottom
在DIV里最后插入文?/td>
Insertion.Bottom(''div1'',''this is a text'')
PeriodicalExecuter
以给定频率调用一DJavaScript
PeridicalExecutor(test, 1)"q里test是Javascript的函?1是频?1U?.
$
取得一个DIV, 相当于getElementById()
$(''div1'')
Field.clear
清空一个输入框
Field.clear(''textfield1'')
Field.focus
?nbsp;焦点集中在输入框?/td>
Field.focus(''select1'')
Field.present
判断内容是否为空
alert(Field.present(''textfield1''))"
Field.select
选择输入框的内容
Field.select(''textfield1'')"
Field.activate
?nbsp;焦点集中在输入框上ƈ选择输入框的内容
Field.activate(''textfield1'')"
Form.serialize
把表格内容{化成string
Form.getElements
取得表格内容为数lŞ?/td>
Form.disable
disable表格所有内?/td>
Form.disable(''form1'') (q个好象不work)
Form.focusFirstElement
把焦炚w中在表格W一个元素上
Form.focusFirstElement(''form1'')
Form.reset
Reset表格
Form.reset(''form1'')
Form.Element.getValue
取得表格输入框的?/td>
Form.Element.getValue(''text1'')
Form.Element.serialize
把表g输入框内容{化成string
Form.Element.serialize(''text1'')
$F
{同于Form.Element.getValue()
$F(''text1'')
Effect.Highlight
高亮Ҏ(gu).
Effect.Highlight(''text1'')
Effect.Fade
褪色Ҏ(gu)
Effect.Scale
攑֤~小(癑ֈ比)
q里200 = 200%, 即两?/p>
Effect.Squish
消失Ҏ(gu)Q文字羃?yu)后消?/td>
Effect.Squish(''text1'')
Effect.Puff
消失Ҏ(gu)Q文字放大后消失
Effect.Puff(''text1'')
Effect.Appear
出现Ҏ(gu)
Effect.ContentZoom
ZOOMҎ(gu)Q?/td>
Ajax.Request
传送Ajaxhl服务器
Ajax.Request(''http://server/s.php'')
Ajax.Updater
传送Ajaxhl服务器q用{复的结果更新指定的Container
Ajax.Updater(''text1'',''http://server/s.php'')
<DIV id="div1"><a href="#" onclick="new Element.toggle('div2')">Click Me</a></DIV>
<DIV id="div2">Hello!</DIV>
]]>
面插入
1QInsertion.Beforec?/strong>
新徏Insertion.Beforecȝ实例Q会(x)指定的HTMLd到指定元素之前,q且与之盔R
CZQ?br />
<div id="div1">original text</div>
<script>
//执行以下脚本以后Q页面的HTML代码变为:(x)
//new test<div id="div1">original text</div>
new Insertion.Before("div1","new text");
</script>
2QInsertion.Topc?/strong>
新徏Insertion.Topcȝ实例Q会(x)指定的HTMLd到指定元素内部,位置在元素开始之后ƈ且与之相?br />
CZQ?br />
<div id="div1">original text</div>
<script>
//执行以下脚本以后Q元素div1的innerHTML属性是Q?br />
//new test original text
new Insertion.Top("div1","new text");
</script>
3QInsertion.Bottomc?/strong>
新徏Insertion.Bottomcȝ实例Q会(x)指定的HTMLd到指定元素内部,位置在元素结束标C前ƈ且与之相?br />
CZQ?br />
<div id="div1">original text</div>
<script>
//执行下面的脚本以后,元素div1的innerHTML属性将?br />
//original text new text
new Insertion.Bottom("div1","new text");
</script>
4QInsertion.Afterc?/strong>
新徏Insertion.Aftercȝ实例Q会(x)指定的HTMLd到指定元素之后,q且与之盔R
CZQ?br />
<div id="div1">original text</div>
<script>
//执行下面的脚本以后,面的HTML代码变为:(x)
//<div id="div1">original text</div>new text
new Insertion.After("div1","new text");
</script>
表单支持
1QField.clear()
]]>
枚D对象(Enumerable对象)
1.Enumerable.each(iterator)
eachҎ(gu)的参数是一个JavaScript函数Q它可以接受两个参数Q它们分别是当前遍历的集合元素和当前遍历元素在集合中的序?br />
CZQ?br />
var arr = [1,2,3,4];
arr.each(
function(item,index){
if(index == 2)
alert("arr["+index+"]=" +item);//当序号ؓ(f)2的时候,输出"arr[2]=3"
}
);
2.$break?continue对象
遍历集合元素时实C定的程控制
CZQ?br />
var arr = [1,2,3,4,8,5,4,3];
//输出l果为:(x)1,2,3,4,5,4,3
arr.each(
function(item,index){
if(item < 6){
alert(item);
} else{
//出现大于{于6的数跌Ql处理下一个元?br />
$continue; //如果按照如下的例子用throw $continue会(x)l束遍历
}
}
);
var arr = [1,2,3,4,8,5,4,3];
//输出l果为:(x)1,2,3,4,5,4,3
arr.each(
function(item,index){
if(item < 6){
alert(item);
} else{
//出现大于{于6的数跌Ql处理下一个元?br />
throw $break;
}
}
);
3.Enumerable.all(iterator)
用于判断集合内的所有元素是否符合某个条Ӟ如果条g均返回trueQ那么allҎ(gu)q回trueQ否则返回false
CZQ?br />
var arr = [1,2,3,4,8,5,-4,3];
var boolean = arr.all(
function(item,index){
return(item>0)
}
);
alert(boolean); //输出false;
4.Enumerable.collect(iterator)
遍历集合中所有元素,q回的结果按照集合中的顺序生成一个Array对象q回
CZQ?br />
var arr = [1,2,3,4,8,5,4,3];
var newArr = arr.collect(
function(item,index){
return(item * item)
}
);
alert(newArr);//输出"1,4,9,16,64,25,16,9"
5.Enumerable.find(iterator)
q回满条g的元素值或者布?yu)(dng)?br />
CZQ?br />
var arr = [1,2,3,4,8,5,4,3];
var ele = arr.find(
function(item,index){
if(item > 3)
return(item)
}
);
alert(ele);//输出?4
黑体部分可以换成Qreturn (item > 3)q回布尔值用来判断该集合是否有满x件的元素
6.Enumerable.findAll(iterator)
满条g的所有元素以Array对象q回
var arr = [1,2,3,4,8,5,4,3];
var ele = arr.findAll(
function(item,index){
if(item > 3)
return(item)
}
);
alert(ele);//输出"4,8,5,4"
7.Enumerable.grep(pattern,iterator)
pattern参数是正则表辑ּ,
CZQ?br />
var arr = ["12345","abc2","cde","fgh","132ba"];
var newArray = arr.grep(
/2/,
function(item,index){
alert(item);//输出"12345","abc2","132ba"
}
);
8.Enumerable.include(obj)
判断obj对象是否是集合的成员
CZQ?br />
var arr = [1,2,3,4,5];
var ele = arr.include(2);
alert(ele);//输出true
9.Enumerable.max(iterator)
q回集合中最大元?br />
CZQ?br />
var arr = [1,2,3,4,5];
var ele = arr.max();
alert(ele); //输出5
10.Enumerable.min(iterator)
q回集合中最元?br />
11.Enumerable.sortBy(iterator)
q行排序
CZQ?br />
var arr = [1,5,3,2,4];
var arr = arr.sortBy(
function(item,index){
return item;
}
);
alert(arr);//输出"1,2,3,4,5"
]]>
1. Class.create()
CZQ?br />
var myClass = Class.create();
2. Object.extend(destination,source)
CZQ?br />
var myClass = Class.create();
myClass.prototype = {
initialize: function() {
},
f1: function() {
alert("do f1()");
},
f2: function() {
alert("do f2()");
},
toString: function() {
return "myClass";
}
};
var mySubClass = Class.create();
Object.extend(mySubClass.prototype, myClass.prototype);
3. Object.inspect(object)
q回目标对象的文字说明,如果对象没有定义inspectҎ(gu)Q则默认q回object.toString()的?br />
CZQ?br />
var myClass = Class.create();
myClass.prototype = {
initialize: function() {
},
toString: function() {
return "myClass";
}
};
var obj = new myClass();
alert(Object.inspect(obj));
4.Function.prototype.bind(object)
q回一个Function的实例,其结构与当前的Function对象完全相同Q只是作用域已经转移到参数指定的object对象?br />
CZQ?br />
var myClass = Class.create();
myClass.prototype = {
initialize: function() {
},
name: "myClass",
f1: function() {
alert(this.name + " from f1");
}
};
var myClass2 = Class.create();
myClass2.prototype = {
initialize: function() {
},
name: "myClass2",
f2: function() {
alert(this.name + " from f2");
}
};
var obj = new myClass();
var obj2 = new myClass2();
obj2.f2 = obj.f1.bind(obj2);
obj2.f2(); // 输出"myClass2 from f1"
5.Function.prototype.bindAsEventListener
与bindҎ(gu)的功能相同,只不qbingAsEvevntListener用于l定事g.
CZQ?br />
var Watcher = Class.create();
Watcher.prototype = {
initialize: function(buttonid, message) {
this.button = $(buttonid);
this.message = message;
// button的onclick和this对象的showMessageҎ(gu)l定h
this.button.onclick =
this.showMessage.bindAsEventListener(this);
},
showMessage: function() {
alert(this.message);
}
};
var watcher = new Watcher('btn', 'clicked');
6.PeriodicalExecuterc?/strong>
创徏PeriodicalExecutercȝ实例会(x)周期性地调用指定的方?br />
function setTime() {
$('divTime').innerHTML = (new Date()).toLocaleString();
}
new PeriodicalExecuter(setTime, 1);
W一个参敎ͼ(x)调用的方法;W二个参敎ͼ(x)间隔多少U?br />
字符串处?String对象扩展)
1.String .prototype.gsub(pattern,replacement)
字W串中所有正则表辑ּ匚w的部分替换成指定的字W串
patternQ正则表辑ּ
replacementQ用作替换的字符?br />
CZQ?br />
var str = "this is a test test";
//输出"this is a new new"
alert(str.gsub(/test/,"new"));
2.String.prototype.truncate(length,truncation)
字W串截断
lengthQ截断后字符串的长度Q默认gؓ(f)30
trancationQ截断字W串Ӟ替代N的字W串Q默认是"..."
CZQ?br />
var str = "this is a test test";
//输出"this is ..."
alert(str.truncate(10));
//输出"this is a t..."
alert(str.truncate(14));
//输出"this is***"
alert(str.truncate(10,"***"));
3.String.prototype.strip()
删除字符串前后的I白字符
CZQ?br />
var str="this is a test test ";
alert(str.strip().length);//19
alert(str.length);//21
4.String.prototype.stripTags()
U除字符串中所有的HTML和XML标签
CZQ?br />
var str = "<table><tr><td>stripTagsDemo</td></tr></table>";
alert(str.stripTags());//输出"stripTagsDemo"
5.String.prototype.stripScripts()
U除字符串所有的<script></script>脚本标记内容
CZQ?br />
var str = "this is a test<script>alert('ok')<"+"/script>";
alert(str.stripScripts());//输出"this is a test"
6.String.prototype.evalScripts()
执行在字W串中找到的所有脚?br />
var str = "this is a test<script>alert('ok')<"+"/script>";
str.evalScripts();//输出"ok"
7.String.prototype.escapeHTML()
字W串中的所有HTML标记q行转义
CZQ?br />
var str = "<table><tr><td>stripTagsDemo</td></tr></table>";
alert(str.escapeHTML());
8.String.prototype.unescapeHTML()
执行与escapeHTML()相反的操?br />
9.String.prototype.toQueryParams()
查询字W串转化Z个联合数l?br />
CZQ?br />
var str = "a=1&b=2&c=3"
var arr = str.toQueryParams();
for(i in arr){
alert(arr[i]);//输出1,2,3
}
10.String.prototype.toArray()
把字W串转换成字W数l?br />
CZQ?br />
var str = "test";
//依次输出"t,e,s,t"
str.toArray().each(
function(item){
alert(item);
}
);
11.String.prototype.extractScripts()
从字W串中提取出所有的<script>脚本Q以字符串数l的形式q回
CZQ?br />
var str = "this is a test<script>alert('ok')<"+"/script>";
str += str;
//输出两遍alert('ok')
str.extractScripts().each(
function(item){
alert(item);
}
);
3.2 Q处理HTTP响应
200Q一切正?nbsp;
401Q未l授?br />
403Q禁?br />
404Q没扑ֈ
function updatePage(){
//readState == 4Q表C求成功完?br />
if(xmlHttp.readyState == 4){
if(xmlHttp.status == 200){
var response = xmlHttp.responseText;//HTTPhq回的文本内?br />
document.getElementById("zipCode").value = response;
}else if(request.status == 404){
//HTTP状态码?04Q无法找到资?br />
alert("404 Not Found");
}else if(request.status == 403){
//HTTP状态码?03Q资源不可用
alert("403 Forbidden");
}else if(request.status == 401){
//HTTP状态码?01Q未l授?br />
alert("401 Unauthorized");
}
}
}
3.3QHTTPqA状?br />
共有Q种qA状态:(x)
0Q请求未初始化(q没有调用XMLHttpRequest对象的openҎ(gu)Q?br />
1Q请求已l徏立,但是q没有发送(q没有调用sendҎ(gu)Q?br />
2Q请求已发送,正在处理?br />
3Q请求在处理中。通常响应中已有部分数据可用了Q但是服务器q没有完成响应的生成
4Q响应已完成Q可以获取ƈ且用服务器的响应了