js学习之路--2

<span style="font-family: song, Verdana; font-size: 14px; line-height: 22.4px; background-color: rgb(240, 243, 250);">保留两位小数:</span>
Function round(num){ 
return Math.round(num*100)/100; 
} 
生成随机数 
Function rand(num){ 
Return Math.floor(Math.random()*num)+1; 
} 
11, With关键字 
With关键字指定一个对象,后面跟着大括号的一个语句块,对于语句块中的每一条语句,没有指定对象的属性都将被假定为该对象的属性。从而可以节约写的代码的时间。

var str = “abcdefg”; 
With(str){ 
Alert(toUpperCase()+“,”+length); 
} 
12, Date对象 
Date对象的创建:

Var date = new Date() // 创建当前时间。 
Var date = new Date(2011, 9, 20); 
Var date = new Date(2011, 9, 20, 15, 30, 20); 
setDate():设置某日 
setMonth():设置某月 
setFullYear():设置某年 
setTime():设置时间 
setHours():设置小时 
setMinutes():设置分钟 
setSeconds():设置秒 
getDate():获取某日 
getMonth():获取某月 
getFullYear():获取某年 
getTime():获取时间 
getHours():获取小时 
getMinutes():获取分钟 
getSeconds():获取秒 

根据日期排序时间

var arr = new Array(); 
arr[0] = new Date(); 
arr[1] = new Date(2001, 3, 28); 
arr[2] = new Date(2002, 6, 25); 
arr[3] = new Date(2002, 6, 24); 

alert(arr[1].getDate()); 

function arcompare(da, db){ 
return da.getDate() - db.getDate(); 
} 

arr.sort(arcompare); 

alert(arr[1].getDate()); 
13, Event对象 
Event属性:不同浏览器的event对象属性不同 
IE: 
event.button—按下鼠标键,对于鼠标左键,这个属性值为1,而对于鼠标右键通常为2; 
event.clientX—事件发生位置的X轴坐标(列,以像素为单位)。 
event.clientY—事件发生位置的Y轴坐标(行,以像素为单位)。 
event.ctlKey—表示事件发生时是否按下CTRL键 
event.altKey—表示事件发生时是否按下ATL键 
  
event.shiftKey—表示事件发生时是否按下SHIFT键 
event.keyCode—表示按键的Unicode码。 
event.srcElement—元素出现的对象。 
Firefox: 
event.button—按下鼠标键,对于鼠标左键,这个属性值为0,而对于鼠标右键通常为2; 
event.modifiers—表示事件发生时按下了那一个修饰键。(atl,ctrl, shift) 
event.pageX—事件发生位置的X轴坐标(列,以像素为单位)。 
event.pageY—事件发生位置的Y轴坐标(列,以像素为单位)。 
event.which—表示按键的Unicode码。 
event.target—元素出现的对象。 

按键显示
function displaykey(e){ 

if(e.keyCode) var keycode = e.keyCode; 
else keycode = e.which; 
var charvar = String.fromCharCode(keycode); 
var ke = document.getElementById("keydis"); 
ke.innerHTML += charvar; 
} 

14, 打开和关闭窗口,调整窗口大小和位置。 
Window.open():打开窗口。 
Window.close():关闭窗口。 
Window.moveTo(x,y):移动窗口的位置—绝对 
Window.moveBy(x,y):移动窗口的位置—相对 
Window.resizeTo(w,h):调整窗口的大小—绝对 
Window.resizeBy(w,h):调整窗口的大小—相对 

var newwin; 

function opnewwin(){ 
newwin = window.open("", "nwin", "toolbar=no, status=no, width=200, height=100"); 

} 

function closenewwin(){ 
newwin.close(); 
} 

function movenewwin(){ 
var w = document.theform.w.value; 
var h = document.theform.h.value; 
var x = document.theform.x.value; 
var y = document.theform.y.value; 
if(w && h){ 
newwin.resizeTo(w, h); 
} 
if(x && y){ 
newwin.moveTo(x, y); 
} 
} 

<form name="theform"> 
<input type="button" value="OPEN NEW WIN" οnclick="opnewwin()"/> 
<input type="button" value="CLOSE NEW WIN" οnclick="closenewwin()"/> 
<br /> 
width:<input type="text" name="w"/> 
height:<input type="text" name="h"/><br /> 
x-postion:<input type="text" name="x"/> 
y-postion:<input type="text" name="y"/><br /> 
<input type="button" value="go" οnclick="movenewwin()"/> 
</form> 

15, Js超时功能 
Var indent = window.setTimeOut(“alert(‘aa’)”, 1000);//1000毫秒后执行一次alert 
Window.clearTimeOut(ident);//停止超时事件 

刷新

  1. Var count = 0; 
  2. Function updatePage(){ 
  3. Count++; 
  4. Var id = window.setTimeOut(“updatePage()”,1000); 
  5. }
16, Window显示对话框 
Window对话框有三种: 
Window.alert(msg):消息对话框 
Window.confirm(msg):确认对话框 
Window.prompt(msg,default):输入对话框 

17, 获取表单中元素 
document.getElementById(Id);//返回具有指定id属性的元素 
document.getElementsByTagName(tag);//返回具有指定标签名的所有元素的一个数组。可以使用同配符(*)返回含有文档中所有节点的一个数组。 
document.formName.elementName;// 


18, Text和textarea事件 
focus():设置文本输入焦点事件 
blur():设置文本输入焦点离开事件 
select():设置文本选择事件 

onFocus:文本输入焦点时发生的事件 
onBlur:文本输入失去焦点时发生的事件 
onChange:文本改变后失去失去光标时发生的事件 
onSelect:文本输入中文本被选择时发生的事件 

焦点事件
  1. function focusinput(){ 
  2. alert("请先输入用户名"); 
  3. document.theform.inp.focus(); 


  4. <form name="theform"> 
  5. 用户名:<input name="inp" type="text" /> 
  6. 密码:<input name="in" type="text" οnfοcus="focusinput()" /> 

  7. </form>
19, Js改变CSS样式 
document.getElementById(id).style.css=value 

改变CSS颜色
  1. function changesele(){ 
  2. var val = document.theform.sele.value; 
  3. document.getElementById("div").style.color=val; 

  4. <div id="div">test color</div> 
  5. <form name="theform"> 
  6. <select name="sele" οnchange="changesele()"> 
  7. <option value="blue">blue</option> 
  8. <option value="red">red</option> 
  9. <option value="gray">gray</option> 
  10. </select> 
  11. </form>
在一些CSS属性的名称中间有连字符,比如border-color等,在js中使用这类属性时,连字符隔开的两部分要合并在一起,连字符后半部分采用首字母大写形式。如borderColor。 

20, 节点属性和操作方法 
节点属性: 
nodeName:节点名称,如<div>标签名称为DIV,<input>标签名称为INPUT,文档节点document名称为#document,文本节点的名称为#text。 
nodeType:描述节点类型的一个整数,1表示正常的html标签,3表示文本节点,9表示文档节点。 
nodeValue:是文本节点包含的实际文本,这个属性对于其他类型的节点无效。 
InnerHTML:是任意节点的html内容。 

firstChild:是节点的第一个子对象。 
lastChild:是节点的最后一个子对象。 
childNodes:是节点的所有子节点的数组 
previousSibling:是节点之前的兄弟节点。 
nextSibling:是节点之后的兄弟节点。 
parentNode:是节点的父节点。 

document节点的操作方法: 
createTextNode(text); 创建一个文本节点。 
createElement(tag); 创建一个html元素。 
页面中的节点方法: 
appendChild(new); 把指定的新节点添加在该对象所有现有节点自后。 
insertBefore(new,old); 把指定的新子节点插入到指定的原有子节点之前。 
replaceChild(new,old); 把新节点替换指定的原有子节点。 
removeChild(node); 从对象中删除一个子节点。 
hasChildNodes();判断对象是否含有子节点,有返回true,无返回false。 
cloneNode(); 为某个现有节点创建一个副本,如果传入true的参数,则该副本包括原始节点的所有子节点。 

树形菜单:
  1. <script type="text/javascript" language="javascript"> 
  2. function menuli(obj){ 
  3. var pid = obj.getAttribute("id"); 
  4. var cid = pid + "-" + "menu"; 
  5. var cul = document.getElementById(cid); 
  6. var pval = obj.firstChild.nodeValue.substring(3) 
  7. if(cul.style.display=="none"){ 
  8. var pr = "[-] " + pval; 
  9. obj.firstChild.nodeValue = pr; 
  10. cul.style.display = "block"; 
  11. }else{ 
  12. var pj = "[+] " + pval; 
  13. obj.firstChild.nodeValue = pj; 
  14. cul.style.display = "none"; 


  15. </script> 


  16. <div> 
  17. <ul> 
  18. <li><a id="one" href="#" οnclick="menuli(this)">[-] one menu</a> 
  19. <ul id="one-menu"> 
  20. <li><a href="#">one child1</a></li> 
  21. <li><a href="#">one child2</a></li> 
  22. </ul> 
  23. </li> 
  24. <li><a id="two" href="#" οnclick="menuli(this)">[-] two menu</a> 
  25. <ul id="two-menu"> 
  26. <li><a href="#">two child1</a></li> 
  27. <li><a href="#">two child2</a></li> 
  28. </ul> 
  29. </li> 
  30. </ul> 
  31. </div>
21, 添加多事件处理程序 
Window.addEventListener(“name”, fun, boolean); 为事件(name事件名称)添加事件(fun事件处理函数),boolean标明事件处理标志位,指明如何处理多个事件,一般设置为false。IE6,IE7和IE8没有提供对它的支持。 
Window.removeEventListener(“name”, fun, boolean); 为事件(name事件名称)删除事件(fun事件处理函数)。 
Window.attanchEvent(“name”,fun); IE6,IE7和IE8支持该事件添加函数。 
Window.detachEvent(“name”, fun); 

Window.addEventListener(“click”, clickfun, false); 
Window.attanchEvent(“onClick”, clickfun); 

添加单击事件
  1. <div id="clickid">aaa</div> 
  2. <script type="text/javascript" language="javascript"> 

  3. var obj = document.getElementById("clickid"); 
  4. //功能检测技术 
  5. if(obj.addEventListener){ 
  6. alert("a"); 
  7. obj.addEventListener("click", clickfun, false); 
  8. }else if(obj.attachEvent){ 
  9. obj.attachEvent("onclick", clickfun); 


  10. function clickfun(){ 
  11. alert("click"); 

  12. </script>
22, 浏览器信息。 
navigator导航器对象,js通过该对象可以读取用户浏览器的信息。 
navigator.userAgent; 用户代理头信息,请求web页面时,浏览器发送给web服务器的字符串。 
navigator.appName; 浏览器的名称。 
Navigator.appVersion; 浏览器版本号。 
Navigator.appCodeName; 浏览器内部代码名称。 
Navigator.language; 浏览器使用语言。如en_US表示为U.S 
Navigator.platform; 计算机平台系统。 

跨浏览器的js支持可以使用:功能检测技术。 

23, 为不支持JS的浏览器提供支持 
使用<noscript>标签,当浏览器不支持js时该标签内的信息会显示。 

24, JS代码风范 
多注释,少逻辑。 
每句js语句以分号结束。 
变量声明用var关键字。 
多调试用alert。 

25, Js错误处理 
使用window.onerror属性指定一个函数来设置错误处理程序。一旦指定了错误处理程序,当脚本运行出错时,浏览器将会调用这个指定的函数,而不是弹出常规的错误对话框。
  1. <script language="javascript" type="text/javascript"> 
  2. function errmsg(message, url, line){ 
  3. alert("there is error:"+message+"=="+line+"=="+url); 
  4. return true; 

  5. window.onerror = errmsg; 

  6. obj.get(); 
  7. </script>
上面定义的errmsg为window.onerror的错误处理函数。如果该函数的返回值为true,则表示函数已对错误进行了处理,并且屏蔽了默认错误处理或对话框。相反如果返回false,则退出函数后,仍然会进行默认错误处理。 

使用try和catch来处理错误代码 
try{ 
obj.get(); 
}catch(err){ 
alert(err.description); 


26, Ajax 
Ajax过程 
创建请求: 
Ajaxreq = new XMLHttpRequest(); 
Ajaxreq = new ActiveXObject(“Microsoft.XMLHTTP”);//兼容IE5和IE6 
打开URL: 
Ajaxreq.open(“GET”, “url?para”, true); 
Ajaxreq.open(“POST”,”url”,true); 

发送请求: 
Ajaxreq.send(null); 
Ajaxreq.send(para); //post提交参数 
等待响应: 
Ajaxa.onreadystatechange = ajaxResponse;//响应函数 
解释响应数据: 
Ajaxreq.readyState 
0(未初始化):对象创建成功,但未调用open 
1(初始化):open方法调用成功,但尚未发送至服务器 
2(请求发送成功):send方法调用成功,请求已经发送至服务器 
3(数据下载中):服务器已经返回信息,并且开始下载数据 
4(请求结束):服务器下载数据成功,或者网络连接中断请求出错。 

27, Image对象。 
Image对象的属性: 
Complete:该属性用于指示图像是否已经被完全加载,该属性是一个boolean值。 
Height和width:该属性给出了图像的尺寸信息。 
Hspace和vspace:给出图像的位置信息。 
Name:表示图像的属性。 
Src:表示他图像的源或url。 

28, Js获取窗口或对象的大小,位置 
获取窗口或对象的大小 
clientWidth和clientHeight:获取窗口/元素的可视区域大小,不包含滚动条和边框。 
offsetWidth和offsetHeight:同样是获取窗口/元素的大小,这个属性的大小包括边框和滚动条。
  1. <style> 
  2. #de{ position:relative; border:solid 1px gray; width:100px; height:100px; overflow:hidden;} 
  3. #te{ position:absolute; top:100px; left:5px;} 
  4. </style> 


  5. <body> 
  6. <div> 
  7. <p>jjd jl fsa lwe jdlkjew lj jwke ml wej </p> 
  8. </div> 

  9. <div id="de"> 
  10. <div id="te"> 
  11. <p>adf dfasdf</p> 
  12. <p>dfd jj njkjlkj j ljl jlkj j ljlj j</p> 
  13. <p>jlkj jlkj l kj kllj </p> 
  14. </div> 
  15. </div> 
  16. <script language="javascript" type="text/javascript"> 

  17. var $ = function (id){ 
  18. return document.getElementById(id); 


  19. var de = $("de"), 
  20. te = $("te"); 

  21. var teh = te.offsetHeight, 
  22. deh = de.offsetHeight; 


  23. var tetop = deh; 

  24. function scrolld(){ 
  25. if(--tetop < 0-teh){ 
  26. tetop = deh; 
  27. te.style.top = tetop; 
  28. window.setTimeout("scrolld();", 30); 
  29. }else{ 
  30. te.style.top = tetop; 
  31. window.setTimeout("scrolld();", 30); 



  32. window.setTimeout("scrolld();", 30); 

  33. </script> 
  34. </body>
获取对象的位置 
offsetLeft和offsetTop:获取对象的相对位置,获取位置是比较麻烦,因为其存在浏览器兼容问题,不同的浏览器参照物可能不同,对于 IE 来说,他相对于 parentNode,对于其他浏览器来说,它相对于某个 position 不等于 static 的祖先节点。 
不过,幸运的是所有浏览器都有一个 offsetParent 来指向它的参照物。那们,我们就可以轻松地获取到元素相对于其参考物的位置。写一个循环,直接其指向浏览器窗口的边缘。
  1. function(){ 
  2. var culeft = 0, cutop = 0; 
  3. if(obj.offsetParent){ 
  4. culeft = obj.offsetLeft; 
  5. cutop = obj.offsetTop; 
  6. obj = obj.offsetParent; 

  7. return [culeft, cutop]; 

  8. 居中显示边距======================================================= 
  9. <style> 
  10. #did{ position:absolute; width:500px; border: solid 1px #aaa; padding: 10px;} 
  11. </style> 

  12. <body> 
  13. <div> 
  14. <ul> 
  15. <li>aaaaaaaaaaaaaaa</li> 
  16. <li>aaaaaaaaaaaaaaa</li> 
  17. <li>aaaaaaaaaaaaaaa</li> 
  18. </ul> 
  19. </div> 
  20. <div id="did"> 
  21. whith:<span id="w"></span>---height:<span id="h"></span> 
  22. left:<span id="l"></span>---top:<span id="t"></span> 
  23. <p>jdfdsljf jsdflj dsfjsdaf sdljf  djflsd j dfljds fdljf sdlfjd fljds fj</p> 

  24. </div> 

  25. <script type="text/javascript" language="javascript"> 
  26. var $ = function(id){ 
  27. return document.getElementById(id); 


  28. var htmlobj = document.documentElement, 
  29. divobj = $("did"), 
  30. divwid = $("w"), 
  31. divhid = $("h"), 
  32. divlid = $("l"), 
  33. divtid = $("t"); 

  34. var divw = divobj.offsetWidth, 
  35. divh = divobj.offsetHeight; 

  36. var setdiv = function (){ 
  37. var htmlw = htmlobj.clientWidth, 
  38. htmlh = htmlobj.clientHeight; 

  39. var marginx = htmlw > divw ? -(divw/2) : 0, 
  40. marginy = htmlh > divh ? -(divh/2): 0; 

  41. var left = marginx == 0 ? 0 : "50%", 
  42. top = marginy == 0 ? 0 : "50%"; 

  43. divobj.style.left = left; 
  44. divobj.style.top = top; 
  45. divobj.style.marginLeft = marginx; 
  46. divobj.style.marginTop = marginy; 


  47. var getdiv = function(){ 
  48. var culeft = 0, cutop = 0, obj = divobj; 
  49. if(obj.offsetParent){ 
  50. culeft = obj.offsetLeft; 
  51. cutop = obj.offsetTop; 
  52. obj = obj.offsetParent; 

  53. divlid.innerHTML = culeft; 
  54. divtid.innerHTML = cutop; 


  55. window.onresize = function(){ 
  56. setdiv(); 
  57. getdiv(); 


  58. </script> 

  59. </body>
复制代码
29, Js控制css样式文件有效性
  1. <link rel="stylesheet" href="test25-1.css" type="text/css"  disabled="disabled"/> 
  2. <link rel="stylesheet" href="test25-2.css" type="text/css" /> 
  3. <script language="javascript" type="text/javascript"> 

  4. function clickstyle(n){ 
  5. var lin = document.getElementsByTagName("link"); 

  6. for(var i = 0; i < lin.length; i++){ 
  7. if(i == n){ 
  8. lin[n].disabled = true; 
  9. }else{ 
  10. lin[i].disabled = false; 




  11. </script>
复制代码
30, Eval函数 
eval:将一个字符串作为javascript语句执行。
  1. eval("x=10;y=20;document.write(x*y)"); 200 
  2. document.write(eval(“2+2”)); 4 
  3. var x = 10; 
  4. document.write(eval(x+17)); 27





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值