java基础--javascrip

来源:互联网 发布:java string 去掉空格 编辑:程序博客网 时间:2024/06/04 21:44

1.javascrip概述

什么是javascrip:一种基于对象和时间驱动的解释性的脚本语言,内嵌到html页面上,由浏览器解释运行。

作用:为Html页面添加动态效果,常用于 页面元素的动态显示、输入验证、客户端计算等。

js语言的组成:标准的js代码+jquery+ajax

js代码的封装

2.如何使用js代码:helloworld

<head>

     <scriptlanguage="javascript" src="first.js"></script>

     <scriptlanguage="javascript">function firstMethod(){alert('你好!'); alert('您好!');alert('你好');    }</script>

</head>

<form>

     <inputtype="button" value="第一个按钮" onclick="alert('Hello world');"/>// 字面值,用完就丢弃

     <inputtype="button" value="第一个方法"onclick="firstMethod();"/>

     <inputtype="button" value="第二个方法按钮"onclick="secondMthod();"/>

</form>      

 

//first.js

functionsecondMthod(){alert('second button');}

********************************************************************************************

     方式一:onXXXX=“”

     方式二:script代码块--封装当前页面的代码<head><script>代码

     方式三:js文件--建议使用

 

3. 基础语法:js类似于cc/java

常量和变量   

     声明变量   var  变量名 = 初始值;

     标识符:由字符、数字、下划线、$组成,不能以数字开头;不能于系统关键字重复

     注释://          /**/

     大小些敏感,以;代表一行代码的结束

 

数据类型          

     基本类型:number string  boolean(true=1false=0)

     number:存储的都是浮点类型 1----1.00000000000000001/0.99999999999999999999

     特殊类型:null undefined

     复杂类型:array object Date Math、、

 

数据类型的转换

隐式转换:直接转换

     vars = "mary";

     varn = 10;

     varb1 = true;

     varb2 = false;    

     alert(s+ n);//mary10

     alert(s+ b1);//marytrue

     alert(n+ b1);//11

     alert(b1+ b2);//1

显示转换:调用方法

     "mary"+ 10.toString()--mary10

     toString

     parseInt

     parseFloat

     typeof

     isNaN(是非数字吗)

 

运算符:

     相等和严格相等==     ===

     三元运算符   表达式?value1:value2;

 

流程控制

     js中的对象   

         Sting对象

              创建:var s="";var s=new String();

              属性:length

              方法:toLowerCase/toUpperCase  indexOf/lastIndex substring charAt/charCodeAt  replace(oldstr,newstr) split

        

         结合正则表达式使用regexp正则表达式,实现对字符串的匹配和替换

              search(regexp)    

              match(regexp)

              replace(regexp);

         //global全局

         //ignour忽略大小写

             

         数组:存储一些类似的数据

              创建数组、赋值

                   varv=new Array();

                   r[0]="mary";//r[0]=[10,“mary“]二维数组也可以

                   r[1]=10;

                   r[2]=true;

                  

                   var  r= new Array(10,"mary",false);

                   varr=[1,"mary",false]

 

              属性:length

              方法

                   a.concat(...);//a拼接...

                   x.join(bystr);

                   x.toString();

                   reverse  翻转

                   sort:默认按照字符比较;可以自定义一个用于比较的方法,由sort方法调用

                   slice(start,end)等价于substring

 

         Math对象

              属性:Math.E(自然数)  Math.PI    Math.LN2

              方法:sin(x) cos(x) tan(x)  asin(x)acos(x) sqrt(x) log(x) exp(x)  abs(x)  max(x,y,...)  random()    round(x)  floor(x)

 

         Number对象  toFixed方法

         正则表达式

              varreg=/^[a-zA-Z0-9]{3,5}$/;

     varreg=/^[\u4e00-\u9fa5]{3}$/;

 

         Date日期对象

              创建日期对象

                   vard= new Date();--当前日期的时间

                   vard=new Date("2013-01-01 12:12:12")

              方法:

                   toXX:转化为某种格式的字符串,常用于界面的显示,如:toDateString/toTimeString

                   getXX:读取时间,getDate getMonth

                   setXX:修改时间:setDate setMonth


<html>

     <head>

         <scriptlanguage="javascript" src="first.js"></script>

         <scriptlanguage="javascript">

              functionfirstMethod()

              {            

                       varss = "10";

                       varn = 10;

                       if(ss== n)alert("equal");

                       if(ss=== n)alert ("same");

             

                       //字符串数据类型

                       alert("ma\"ry\n\u4e00\u9fa5");

                       alert("你好!");         

                       alert("您好!");     

                       alert("你好");       

                       //声明一个变量来保存数据

                       vari = 12;

                       vars = "mary";

                       var b = true;

              }        

         </script>

     </head>

     <body>

         <form>

              <inputtype="button" value="第一个按钮" onclick="alert('Hello world');"/><br/><br/>

              <inputtype="button" value="第一个方法"onclick="firstMethod();"/><br/><br/>

              <inputtype="button" value="第二个方法按钮"onclick="secondMthod();"/><br/>   <br/>

        

              <inputtype="button" value="数据的隐式转换"onclick="convertData();"/><br/><br/>

             

              <inputtype="text" id="textdata"/>

              <inputtype="button" value="算平方" onclick="getSquare();"/><br/>         <br/>    

             

              <!--三元运算服才数字 -->

              猜数字:

              <inputtype = "text" id="txtNum"onblur="guess();"/><br/><br/>

              求和:

              <inputtype = "text" id="aa"onblur="getSum();"/><br/><br/>

              统计js数量:

              <inputtype="text" id = "txtString" onblur="trystring();"/><br/><br/>

              将js替换为*;

              <inputtype="text" id = "txtStr"onblur="thstring();"/><br/><br/>            

             

              将js替换为*;

              <inputtype="text" id = "ttStr"onblur="thtring();"/><br/><br/>

              数组的各种操作

              <inputtype="text" id="sdfs" value="123,2,4,54,67,6"/>

              <inputtype="button"value="翻转"onclick="operateArray(1);"/>

              <inputtype="button"value="按字符排序"onclick="operateArray(2);"/>

              <inputtype="button"value="按数值排序"onclick="operateArray(3);"/><br/><br/>

             

              <inputtype="button" value="随即整数" onclick="randomNumber();"/><br/><br/>

              输入验证:用户名3-5位的数字和字母的组合

              <inputtype="text" id="tname"onblur="justname();"/><br/><br/>

              <inputtype="button" value="获得日期"onclick="fDate();"/><br/><br/>

                      

         </form>      

     </body>

</html>




first.js

//只能些js代码           /**/

function secondMthod(){

     alert('secondbutton');

}

function convertData(){

     vars = "mary";

     varn = 10;

     varb1 = true;

     varb2 = false;

    

     alert(s+ n);//mary10

     alert(s+ b1);//marytrue

     alert(n+ b1);//11

     alert(b1+ b2);//1

}

//计算页面文本框中录入数值的平方

function getSquare(){

     //得到文本框中的文本内容

     vars = document.getElementById("textdata").value;

     //isNaN是非数字马?

     if(isNaN(s)){

         alert("请重新你录入!");

     }else{

         //数据类型的转换

         vardata = parseFloat(s);

         alert(data* data);

     }   

}

function guess(){

     vars= document.getElementById("txtNum").value;

     varn=parseInt(s);

     varresult = (n > 10) ? "too big":(n < 10 ? "toosmall":"good");

     alert(result);

}

function getSum(){

     varn=parseInt(document.getElementById("aa").value);

     varsum=0;

     for(vari=1;i<=n;i++){

         sum+=i;      

     }

     alert(sum);

}

function trystring(){

     vars=document.getElementById("txtString").value;

     varindex=s.indexOf("js");

     varcount=0;

     while(index>-1){

         count=count+1;

         index=s.indexOf("js",index+2);

     }

     alert(count);

}

//使用string对象的方法

function thstring(){

     vars = document.getElementById("txtStr").value;

     varindex = s.indexOf("js");  

     while(index> -1){

         s= s.replace("js","*");

         index= s.indexOf("js",index + 1);

     }

     document.getElementById("txtStr").value=s;

}

function thtring(){

     vars = document.getElementById("ttStr").value;

//    var result = s.replace(/js/gi,"*");//global全局ignour忽略大小写

     //不允许录入数字,将数字替换为*

     varresult = s.replace(/\d+/g,"*");

     document.getElementById("ttStr").value= result;

}

function operateArray(tt){

     vars=document.getElementById("sdfs").value;

     vararr=s.split(",");

     switch(tt){

     case1:

         arr.reverse();//翻转

         break;

     case2:

         arr.sort();

         break;

     case3:

         arr.sort(sortFunc);//自定义比较规则,将方法对象

         break;

     }   

     alert(arr.join(";"));

}

 

//方法:按照数值的大小比较

function sortFunc(a,b){

     returna-b;

}

 

function randomNumber(){

     varmax=50;

     varmin=5;

     varr=Math.random();

     varresult=Math.floor(r*(max-min)+min);

     alert(result);

}

function justname(){

     vars=document.getElementById("tname").value;

     //定义正则表达式regular expression

//    var reg=/^[a-zA-Z0-9]{3,5}$/;

     varreg=/^[\u4e00-\u9fa5]{3}$/;

     if(!reg.test(s))

         alert("请重新录入"); 

}

 

function fDate(){

     vard=new Date();

     d.setDate(d.getDate()-3);

     alert(d.toDateString("yyyy-MM-dd"));

}


=============================================================================

1 function 对象

定义函数/方法:function 函数名(参数){}    使用function关键字,参数直接定义,使用return实现返回

重载:

js中,方法的名称相同,覆盖(以最后一次定义的为准)

arguments对象:当前方法的参数数组 arguments.length/arguments[i]

 

js中定义方法:

方法一:function关键字明文的定义一个方法

方法二:使用function对象,创建一个方法的实例--最后一个参数是方法体,其他参数是方法的参数

方法三:使用匿名函数,常用于实现内部方式

----------------------------------------

<h4>方法重载</h4>

<input type="button"value="模拟重载" onclick="tryArguments(12,30);"/>

functiontryArguments(){//function关键字创建方法

     if(arguments.length==1){

         vardata=arguments[0];

         alert(data*data);

     }

     elseif(arguments.length==2){

         alert(arguments[0]+arguments[1]);

     }else{

         alert("NaN");

     }

}

<input type="button"value="内部方法" onclick="ttFunc();"/>

//js中定义方法

/*方法一:function关键字明文的定义一个方法

 * 方法二:使用function对象,创建一个方法的实例--最后一个参数是方法体,其他参数是方法的参数

 */

 

function ttFunc(){//function对象创建方法

     varf1=new Function("a","b","alert(a+b);");

     f1(10,20);

}

<input type="button"value="内部方法排数组" onclick="testFunc();"/>

function testFunc(){

    

     vararray=[12,3,10,5,34];

     //使用Function对象定义内部使用的方法,实现数组按照数值大小的排序

     varsortFunc=new Function("a","b","return a-b");

     array.sort(sortFunc);

     alert(array.toString());   

}

<input type="button"value="匿名函数" onclick="nimingfunc();"/>

//方法三:使用匿名函数,常用于实现内部方式

function nimingfunc(){

     varf1=function(a,b){

         alert(a+b);        

     };

     f1(10,20);

    

}

<input type="button"value="匿名排序" onclick="nimingpaixu();"/>

function nimingpaixu(){

     vararray=[15,3,10,2,7,25,8];

     varsortFunc=function(a,b){

          return b-a;

     };

     array.sort(sortFunc);

     alert(array.toString());   

}



全局函数:parseInt/parseFloat/isNaN/eval/decodeURI/encodeURI

decodeURI:对encodeURI()函数编码国的URI进行解码

encodeURI:把字符串作为URI进行编码

eval(str):计算某个字符串

--------------------------------------

<h4>模拟计算器</h4>

<inputtype="text" id="textdata"/>

<input type="button"value="1" onclick="cal(this.value);"/>

<input type="button"value="2" onclick="cal(this.value);"/>

<input type="button"value="3" onclick="cal(this.value);"/>

<input type="button"value="4" onclick="cal(this.value);"/>

<input type="button"value="5" onclick="cal(this.value);"/>

<input type="button"value="6" onclick="cal(this.value);"/>

<input type="button"value="7" onclick="cal(this.value);"/>

<input type="button"value="8" onclick="cal(this.value);"/>

<input type="button"value="9" onclick="cal(this.value);"/>

<input type="button"value="0" onclick="cal(this.value);"/>

<input type="button"value="+" onclick="cal(this.value);"/

<input type="button"value="-" onclick="cal(this.value);"/>

<input type="button"value="*" onclick="cal(this.value);"/>

<input type="button"value="/" onclick="cal(this.value);"/>

<input type="button"value="=" onclick="cal(this.value);"/>

<input type="button"value="%" onclick="cal(this.value);"/>

function cal(str){

     if(str== "="){

         varexpression=document.getElementById("textdata").value;

         varexpression=document.getElementById("textdata").value=eval(expression);

     }

     else{

         document.getElementById("textdata").value+=str;

     }

}




2   DHTML--动态的html

什么是DHTML:利用js的对象及其方法实现动态效果

DHTML对象模型树

 

location--导航地址栏

history--历史访问记录

event

navigator

document--整个html文档

 

3   window 对象

属性:document:窗口中显示的html文档

         history

         location

         name

         opener:打开当前窗口的window对象

对话框:alert(str)/confirm(str) prompt(str,value):输入对话框,采用文本框输入信息,str为提示信息,value为初始值,确定返回输入值,其他返回undefined;

打开窗口:window.open(rul)--代码中动态的打开某个页面

定时器方法:setInterval/clearInterval  setTimeout/clearTimeout

------------------------------------------------------------------

//弹出的窗口是固定的不可以被修改

<input type="button"value="删除"onclick="deleteData();"/>

function deleteData(){

     varr=window.confirm("是否真的要删除?");

     alert(r);

     window.prompt("请输入");

}

//其中id 可以防止打开多个,高宽可以设置打开窗口的的大小,toolbar可以设置工具菜单是否被打开

<input id="aaa"type="button" value="打开窗口 " onclick="openData();"/>

function openData(){

     window.open("http://tts6.tarena.com.cn","aaa","width=400,height=600,toolbar=yes");

}

//时间

<input type="text"id="txtTime"/>

<input type="button"value="显示时间" onclick="showTime();">

<input type="button"value="启动时钟" onclick="startTime();">

<input type="button"value="停止时钟" onclick="stopTime();"/>

function showTime(){

     varnow=new Date();   

     document.getElementById("txtTime").value=now.toLocaleTimeString();

}

//启动动态时钟

var timer;

function startTime(){

     //每个1s调用showTime方法:每隔一秒执行function对象  

     timer=window.setInterval("showTime()",1000);

}

//停止时钟

function stopTime(){

     window.clearInterval(timer);定时器方法:setInterval/clearInterval setTimeout/clearTimeout

}

 

 

//5S后弹出hello

<input type="button"value="一次性弹出菜单"  onclick="wait();"/>

如果想取消此操作,请点击<a href="javascript:cancelwait();">这里</a>

 

var timer1;

function wait(){

     timer1=window.setTimeout("alert('hello!')",5000);

}

function cancelwait(){

     window.clearTimeout(timer1);

}



4. document 对象:代表的就是整个html文档  ,将整个文档做成一棵树,以树形的方式操作它--DOM操作--标准DOM操作(适应性好,繁琐)

 

1) 找到节点对象:遍历树

document.getElementById--根据id精确查找

层次结构查询

     parentNode/

     childNodes/

     lastChild/

     firstChild

document.getElementsByTagName--根据标签的名称查找

<imgsrc="a.jpg"/>

node--节点,并不知道什么节点

node.src/value/type

--------------------------------------------------------------------------

例:修改图像、链接、段落、以及样式

<input type="button"value="实验DOM operation"onclick="testDOM();"/>

<img width="300px"height="" id="img1"src="blue.jpg">

<a  id="link"href="#">click me</a>    

<p id="p1">段落</p>

<h3id="h3">h3</h3>

function testDOM(){

     //页面上有多少input元素

     varn=document.getElementsByTagName("input").length;

     alert(parseInt(n));

     //修改图像

     varobj=document.getElementById("img1");

     obj.src="only.jpg";

     //修改链接

     varlinkObj=document.getElementById("link");

     linkObj.href="http://tts6.tarena.com.cn";

     linkObj.innerHTML="aaaa"

     //修改段落

     varpObj=document.getElementById("p1");

     pObj.innerHTML="newtext";

     pObj.style.color="red";

     pObj.style.backgroundColor="gray";

     pObj.style.fontSize="20pt";

 

     //修改h3的样式类

     varh3Obj=document.getElementById("h3");

     h3Obj.className="style1";

 

     //获得子点(其中包含空格和回车)

     varulObj=document.getElementById("ul");

     varcount=0;

     for(vari=0;i<ulObj.childNodes.length;i++){

         if(ulObj.childNodes[i].nodeName=="LI"){

              count++;

         }

     }   

     returncount;

}




2) 读取或者修改节点的信息:将html标记对象

     <inputtype="text"/>

     a.将html标记对象化:img.src/a.href/input.value/type

     b.innerHTML:标记中间的文本

     c.style.color/fonSize/display:修改简单的样式,每次只能修改一个

     d.className="";--复杂样式定义

     e)nodeName---得到全大写的节点的名称

    

onXXXX = "returnfalse;"可以取消事件

------------------------------------------------------------

例如:模拟用户输入验证

用户名:<input type="text" id="uName"onblur="valiName();"/>

<span id="nameinfo">3-5位的字母数字的组合</span><br/>

电话:<input type="text" id="utel"onblur="valiTel();"/>

<span id="telinfo">5位的数字的组合</span><br/>

<input type="submit"value="保存" onclick="returnvaliAllData();"/>

//验证用户名

function valiName(){

     varname=document.getElementById("uName").value;

     varreg=/^[a-zA-Z0-9]{3,5}$/;

     varspanObj=document.getElementById("nameinfo");

     if(reg.test(name))

         spanObj.style.color="green";

     else

         spanObj.style.color="red";

     returnreg.test(name);

}

//验证电话

function valiTel(){

     vartel=document.getElementById("utel").value;

     varreg=/^\d{5}$/;

     varspanObj=document.getElementById("telinfo");

     if(reg.test(tel))

         spanObj.style.color="green";

     else

         spanObj.style.color="red";

     returnreg.test(tel);

}

//逐一验证所有的项

function valiAllData(){

     varr1=valiName();

     varr2=valiTel();

     alert(r1&&r2);

     returnr1&&r2;

}

 

<h5>模拟购物车</h5>

<table border="1"id="table1" >

     <tr>

         <td>名称</td>

         <td>价格</td>

         <td>数量</td>

         <td>小计</td>                   

     </tr>

     <tr>

         <td>aaa</td>

         <td>10.00</td>

         <td><inputtype="button" value="-"onclick="sub(this);"/><input type="text"value="1"/>

              <inputtype="button" value="+"onclick="add(this);"/></td>

         <td></td>                       

     </tr>

     <tr>

         <td>sdfaa</td>

         <td>28.00</td>

         <td><inputtype="button" value="-"onclick="sub(this);"/><input type="text"value="1"/>

              <inputtype="button" value="+"onclick="add(this);"/></td>

         <td></td>                       

     </tr>

</table>

总计:<span id="sp1"onblur="calSum();"></span>

 

 

//增加购物车的数量

function add(btnObj){

     //得到td对象的子对象

     varnodes=btnObj.parentNode.childNodes;

     for(vari=0;i<nodes.length;i++){

         varchild=nodes[i];

         if((child.nodeName=="INPUT")&& child.type=="text"){

              varn=parseInt(child.value);

              n++;

              child.value=n;

         }

     }

     calSum();

}

function sub(btnObj){

     varnodes=btnObj.parentNode.childNodes;

     for(vari=0;i<nodes.length;i++){

         varchild=nodes[i];

         if(child.nodeName=="INPUT"&&child.type=="text"){

              varn=parseInt(child.value);

              if(n>1){

                   n--;

                   child.value=n;

              }            

         }

     }

     calSum();

}

 

/*价格在第二个td里,数量在地三个td里的第二个input里

row.getElementsByTagsName("td")[1].innerHTML;

row.getElementsByTagsName("td")[2].getElementsByTagsName("input")[1].value

*/

 

function calSum(){

     //找到所有的tr

     vartotal=0;

     vartObj=document.getElementById("table1");

     varrows=tObj.getElementsByTagName("tr");

     for(vari=1;i<rows.length;i++){

         varrow=rows[i];

         varprice=parseFloat(row.getElementsByTagName("td")[1].innerHTML);

         varcount=parseInt(row.getElementsByTagName("td")[2].getElementsByTagName("input")[1].value);

         varsum=price*count;

         row.getElementsByTagName("td")[3].innerHTML=sum.toFixed(2);

         total+=sum;

     }

     document.getElementById("sp1").innerHTML=total.toFixed(2);

}




3.为文档添加新内容

document.createElement(elementName)

parentNode.appendChild(newNode)

parentNode.insertBefore(newNode,refNode)--refNode参考节点

==========================================

<form id="form1">

<input type="button"value="添加新节点" onclick="addnewNode();"/>

function addnewNode(){

     //找到服元素

     varformObj=document.getElementById("form1");

    

     //按钮后添加一个文本框

     vartxtObj=document.createElement("input");

     txtObj.type="text";

     txtObj.value="mary";

     document.getElementById("form1").appendChild(txtObj);

 

     //文本框后添加一个段落

     varpObj=document.createElement("p");

     pObj.innerHTML="段落的文本";

     document.getElementById("form1").appendChild(pObj);

 

     //在第一个节点前加一个段落

     varpObj=document.createElement("p");

     pObj.innerHTML="段落的文本";

     document.getElementById("form1").insertBefore(pObj,formObj.firstChild);

 

     //文本框后添加一个按钮

     varbtnobj=document.createElement("input");

     btnobj.type="button";

     btnobj.value="newButton";

     //事件定义

     btnobj.onclick=function(){alert("helloworld");};

     formObj.appendChild(btnobj);

}



=========

parentNode.removeChild(childNode)

     a  创建新节点createElement("");

     b    设置节点的信息

     c  加入文档 appendChild/insetBefore新节点已经加入父节点

4 删除节点node.parentNode.removeChild(childNode);

     eHTML DOM:原有的DOM基础上,对一些常用的操作进行封装,简化代码。--将所有的元素封装为对象,比如input对象  A对象

 

1 select和option

     sel.options

     sel.add

     varo=new Option(text,value);

************************************************

省:<select id="sel1">

     <option>--清选择--</option>

     <option>北京</option>

     <option>河北</option>

     <option>河南</option>

</select>

城市:<select id="selCity">

     <option>--清选择--</option>                     

</select>

 

//设计数据存储:二维数组

  var array=new Array();

     array[0]=["清选择"];

     array[1]=["海淀","朝阳"];

     array[2]=["石家庄"];

     array[3]=["郑州","新乡"];

 

//选择城市

function createCity(){

     //第一个下拉框的选项

     varindex=document.getElementById("sel1").selectedIndex;

     //当前需要的数据

     vardata=array[index];

     varselCity=document.getElementById("selCity");

     //删除原有的选项

     while(selCity.childNodes.length>2){

         selCity.removeChild(selCity.lastChild);

     }

     //加入新选项

     for(vari=0;i<data.length;i++){

         varobj=document.createElement("option");

         obj.innerHTML=data[i];

         selCity.appendChild(obj);

     }

}

 

//使用封装的方式实现相同的功能

function createCity(){

     //第一个下拉框的选项

     varindex=document.getElementById("sel1").selectedIndex;

     //当前需要的数据

     vardata=array[index];

     varselCity=document.getElementById("selCity");

     //删除原有的选项

     selCity.options.length=0;

     //加入新选项

     for(vari=0;i<data.length;i++){

         varobj=new Option(data[i]);

          selCity.options[i]=obj;

     //    selCity.add(obj);

     }

}



2 table

     table.insertRow(index)--返回新创建的行对象

     row.insertCell(index)--返回新创建的单元格对象

     cell.innerHTML="mary"

     Table对象

         属性:rows/cells

         方法:insertRow(index) deleteRow(index)

     TableRow对象

         属性:cells/innerHTML/rowIndex

         方法:insertCell(index) deleteCell(index)

     TablCell对象

         属性:cellIndex/innerHTML/colSpan/rowSpan



增加表格

ID:<inputtype="text" id="tID"/>

Name:<inputtype="text" id="tName"/>

<input type="button"value="增加表格" onclick="addRow();"/>

<table border="1"id="t1">

     <tr>

     <td>ID</td>

     <td>姓名</td>

     </tr>

  <tr>

     <td>1001</td>

     <td>张三</td>

     </tr>

</table>

//为表格添加行以及单元格

function addRow(){

     vart=document.getElementById("t1");

     varrow=t.insertRow(t.rows.length);

     //为行添加单元格

     varcell1=row.insertCell(0);

     cell1.innerHTML=document.getElementById("tID").value;

     varcell2=row.insertCell(1);

     cell2.innerHTML=document.getElementById("tName").value;

}

 

window其他子对象

1    screen对象(没有方法)屏幕的信息

         属性:width/height/availWidth/availHeight(可用的高)

 

2    history对象:历史访问记录

         属性:length

         方法:back()/forward()/go(num)

3    location对象:地址栏

         属性:href

              location.href="";//保留历史记录

         方法:replace(url)/reload()

              location.replace("");//不会保留历史记录

              location.

<input type="button"value="使用location对象"onclick="testLocation();">

function testLocation(){

     location.href="http://tts6.tarena.com.cn"

     //location.replace("http://tts6.tarena.com.cn");

}



A页面--B页面

     a静态/window.open动态在新窗口中打开/location动态,不在新窗口打开

 

4    navigator对象:浏览器软件的相关信息

         代码动态的遍历某个对象的所有属性




<input type="button"value="使用navigator对象"onclick="testNavigator();">

function testNavigator(){

     varstr="";

     for(varr in navigator){

         str+=r+":"+navigator[r]+"\n";

     }

     alert(str);

}





event:

1    事件的分类:鼠标事件   键盘事件   状态改变事件

鼠标事件:onclick ondblclick  onmousedown  onmouseup onmouseover  onmouseout

键盘事件:onkeydown onkeyup

状态事件:(onload onunload--body)onchange onfocus  onblur onresize(onsubmit--form)

2    事件可以取消

     onXXXX="returnfalse;"

    

3    js中,事件有冒泡机制

     如果层次元素定义了相同的事件,从最底层开始触发,层层向上

     利用冒泡机制,解决事件重复定义--使用父元素,比如;div包含,定义div的onclick




计算器<div onclick="cal(event);">

     <inputtype="button" value="1"/>

     <inputtype="button" value="2"/>

     <inputtype="button" value="3"/>

     <inputtype="button" value="4"/>

     <inputtype="button" value="5"/><br/>

     <inputtype="button" value="6"/>

     <inputtype="button" value="7"/>

     <inputtype="button" value="8"/>

     <inputtype="button" value="9"/>

     <inputtype="button" value="0"/><br/>

     <inputtype="button" value="+"/>

     <inputtype="button" value="-"/>

     <inputtype="button" value="*"/>

     <inputtype="button" value="/"/>

     <inputtype="button" value="%"/><br/>

     <inputtype="button" value="="/>

     <inputid="resultare"type="text"/>

</div>

//简化计算器e.target火狐浏览器认识  IE谷歌浏览器只认识e.srcElement

function cal(e){

     //得到出发事件的那个对象元素

     varnode=e.target||e.srcElement;

     vartxtObj=document.getElementById("resultare");

     //是否点击的是按钮

     if(node.nodeName== "INPUT" && node.type == "button"){

         //是不是=

         if(node.value== "="){

              txtObj.value= eval(txtObj.value);

         }else{

              txtObj.value+= node.value;

         }

     }

}




4 event对象:只要有事件发生,event对象,其中会有数据

     event.clientX/clientY

     event.srcElement/target--触发事件的对象

 

     event.srcElement

5    元素定义事件

     静态定义:<element onxxxx=""/>

     动态定义:obj.onclick=functin 对象;

6    面向对象基础:数据和行为的封装

         js中如何实现封装

         封装:

              自用:js代码中使用,随便使用某种方式

              他用:数据封装后传递给服务器端,采用大家都认识的格式--JSON




<input type="button"value="实现数据封装"onclick="testObject();">

function testObject(){

     //对象:name 为mary,age为18,方法sing调用弹出hello

     //o必须是一个对象,封装了两个数据一个方法

     varo = new Object();

     o.name= "mary";

     o.age= 18;

     o.sing= function(){alert("Hello");};

     alert(o.name);

     alert(o.age);

     o.sing();

}

 



a>  使用Object对象实现简单封装

     创建一个object对象,直接定义属性和方法不能实现重用

b>  实现自定义封装 构造函数,实现真正的凤凰钻过

<input type="button"value="自定义封装" onclick="testPerson();">

//定义Person

function Person(n,a){

     this.name= n;

     this.age= a;

     this.introSelf=function(){

         varstr="i am "+this.name+", i am "+a+" years old.";

         alert(str);

     };   

}

 

//测试Person

function testPerson(){

     varp1=new Person("mary",18);

     alert(p1.name+":"+p1.age);

     p1.introSelf();

     varp2=new Person("tom",20);

     alert(p2.name+":"+p2.age);

     p2.introSelf();

}

c>   JSON

         使用名/值对的方式定义

         名称使用“”引起来

         多对定义之间使用,隔开


<input type="button"value="使用JSON封装"  onclick="testJSON();">

//使用JSON语法封装数据--交换(往往只封装属性)

function testJSON(){

     varp={

         "name":"jerry",

         "age":18

     };

     alert(p.name+":"+p.age);

}

 

/*18 mary/20 tom/30 jerry

varp1={"name":"mary","age":18};

varp2={"name":"tom","age":20};

varp3={"name":"jerry","age":30};

var array=[p1,p2,p3];

*/



0 0