zoukankan      html  css  js  c++  java
  • Javascript学习笔记

    1.js的声明

    (1)在head标签中使用script标签进行js代码域的声明

    <script type="text/javascript">
        ...
    </script>

      作用:

        声明js代码域

      特点:

        js的代码只会作用于当前网页

    (2)在head标签中使用script标签引入外部声明好的js文件

    <script src="***.js" type="text/javascript" charset="utf-8"/>

      作用:

        引入外部声明好的js文件

      特点:

        实现js代码的重复使用,避免代码的冗余

    注意:

      因为js在HTML代码中是一门单独的语言,可以声明在文档中的任意位置

      一般情况下声明在head标签中

    2.js的变量

    (1)js的变量声明

       js中的所有变量声明只有var关键字

    <script type="text/javascript">
        var a=123;
        var a1=3.1415926;
        var a2="js";
        var a3='k';
        var a4=true;
        var a5=new Date();
    </script>

      注意:

        js的变量名严格区分大小写

        js中的字符串可以使用双引号也可以使用单引号

        js中可以声明同名变量,不会报错,后面会将前面声明覆盖

    (2)js中的数据类型

      数据类型判断关键字:typeof

      数据类型:

        number:数字类型

        string:字符串类型,注意,在js中字符可以使用单引号也可以使用双引号

        boolean:布尔类型

        object:对象类型

        null:空对象赋值,引用类型的数据赋值为null

        Undefined:变量声明不赋值的情况下,默认值是undefined

      注意:

        在js代码中尽可能的给声明的变量赋初始值

    (3)js的变量强转

      使用Number()函数,将其他数据类型转换为数值类型,转换失败返回NaN(not a number)

      使用Boolean()函数,将其他数据类型转换为布尔类型,有值返回true,无值返回false;

    (4)特殊值

      null                    object

      undefined          undefined

      NaN                   number

    3.js的运算符

      算术运算符:

        加法:+

        减法:-

        乘法:*

        除法:/

        余数:%

          number类型和number类型

          number类型和boolean类型(true--1,false--0)

          number类型和string类型(*,/,%,-)

          string类型和string类型的数字(*,/,%,-)

          string类型数字和boolean类型(*,/,%,-)

        在算术运算符中如果两边的数据类型不是number,会使用Number()强转后再进行运算

        注意:

          在字符串中“+”符号代表的是字符串连接符,不参与运算

      逻辑运算符:

        & && | || !与java中一致

      关系运算符:返回值true或者false

        !=  >=  <=  >  <

      自增运算符

        ++  --  +=  -=

    4.js的特殊关系运算符

      等值运算符:==

        先判断类型,类型一致则直接比较

              类型不一致,则先使用Number()进行强转后再进行比较

        注意:

          null和undefined在做==判断时返回true

    var a=1;
    var a1="1";
    var a2=true;
    var a3="true";
    var a4="a";
    var a5="a";
    alter(a==a1);//true
    alter(a==a2);//true
    alter(a==a3);//false
    alter(a1==a2);//true
    alter(a1==a3);//false
    alter(a2==a3);//false
    alter(a4==a5);//true

      等同运算符:===

        先判断类型,类型一致再比较内容,内容也一致则返回true

              类型不一致,直接返回false

    var a=1;
    var a1="1";
    var a2=true;
    var a3="true";
    var a4="a";
    var a5="a";
    alter(a===a1);//false
    alter(a===a2);//false
    alter(a===a3);//false
    alter(a1===a2);//false
    alter(a1===a3);//false
    alter(a2===a3);//false
    alter(a4===a5);//true

    5.js的逻辑结构

      if结构

        单分支结构:

          if(判断条件){执行体}

        双分支:

          if(判断条件){执行体}else{执行体}

        多分支:

          if(判断条件){执行体}else if(判断条件){执行体}...else{执行体}

      switch选择结构

        switch(变量){

          case :break;

          case :break;

          ...

          default:break;

        }

        注意:

          判断的变量可以是number类型也可以是string类型,但是不要混用

    6.js的循环结构

       for循环

        for(变量;条件;迭代条件){循环体}

      while循环

        while(循环条件){循环体}

      do{}while{}循环

        do{循环体}while(循环条件)

    7.js的数组

    (1)数组的声明

    <script type="text/javascript">
        var arr=new Array();//声明一个空数组
        var arr=new Array(length);//声明一个指定长度的数组
        var arr=[元素];//声明数组
    </script>

      注意:

        js的数组声明不用指定长度,js的数组长度时不固定的,会随着元素的数量改变而改变

    (2)数组的赋值和取值

    <script type="text/javascript">
        var arr[];
        arr[0]="2";
        arr[1]="abc";
        arr[2]=true;
        arr[3]=new Date();
    </script>

      数组可以存储任意类型的数据

        数组名[角标] = 值;//角标可以是任意的正整数或则0

      数组的取出:

        数组名[角标]//返回当前角标对应存储的值

        如果角标不存在,返回undefined

    (3)数组的length属性

      数组名.length //返回当前数组的长度

      数组名.length=新的值//动态的改变数组的长度

        如果length>原有长度,则使用空格进行填充

        如果length<原有长度,则从后面截取,最后的数据会删除

    (4)数组的遍历

    var arr[1,"abc",3,"a",4];
    //遍历1:普通for循环
    for(var i=0;i<arr.length;i++){
        alter(arr[i]);
    }
    //遍历2:for-in
    for(var i in arr){
        alter(i);//获取的是角标
        alter(arr[i]);      
    }

     8.js数组的常用操作

      数组的操作学习:

        数组的合并:arr.concat(b,c);//数组的合并

        数组指定间隔符转换字符串:var b=arr.join("-");

        数组的开始位置插入指定原属,返回新的长度:var ln=arr.unshift("lol");

        数组移除第一个元素并返回:var ele=arr.shift();

        数组的末尾插入指定原属,返回新的长度:var ln=arr.push("lol");//追加的元素可以是一个数组,但作为一个角标值存在

        数组移除最后一个元素并返回:var ele=arr.pop();

        数组反转:reverse();

        数组的排序:sort();

        数组删除指定位置元素:var arr2=arr.splice(1,3,"a");//从1位置开始往后删除3个元素

    9.js的函数

      作用:功能代码块的封装,减少代码的冗余

      函数的声明

        //方式一:

          function 函数名(形参1,形参2...){函数执行体}

        //方式二:

          var 函数名=new Function("形参1","形参2"...,"函数执行体");

            注意:此声明表明在js中函数是作为对象存在的

        //方式三:

          var 函数名=new Function("形参1","形参2"...){函数执行体};

        //调用声明的函数

          test(实参1,实参2);

      函数的参数

        js中的函数在调用时,形参可以不赋值,不会报错

        js中的函数在调用时,形参赋值可以不全赋值

      函数的返回值

        在js中如果函数有返回值直接返回,没有返回值默认返回undefined

      注意:

        js的代码声明区域和执行区域是一起的,都是在js代码的代码域中

    10.js的函数(二)

      函数的执行符

        在js中函数的执行符是()

          没有小括号则函数名其实就是一个变量

          加上括号则函数会被执行

      函数作为实参传递

          在js中函数可以作为实参进行传递

    function testobj(a){
       a();
    }
    var testParam=function(){
        alert("我是函数参数");
    }
    testobj(testParam);
    //开发中常用的传递方式
    function testObj2(fn){//testobj2函数在调用时,实参必须是一个函数对象
        fn();
    }
    
    testObj2(function(){
        alert("开发");
    })

     11.js中的类

      类的声明

      function 类名(形参1,形参2.....){

        this.属性名1=形参1;

        this.属性名2=形参2;

        ......

        this.属性名=fn;

      }

    function Person(name,age){
        this.name=name;
        this.age=age;
        this.test=function(a){
            alert(a);
        }
    }

      类的使用

      var 对象名=new 类名(实参1,实参2......);

      注意:

        js中类的内容只是对象的公共部分,每个对象还可以自定义进行扩充

    var p1=new Person("张三",32);
    alert(p1.name);

      类的“继承”:prototype关键字

      通过prototype关键字实现了不同对象之间的数据共享

      作用1:实现某个类的所有子对象的方法区对象的共享,节省内存

    Person.prototype.test=function(){alert("哈哈")};

      作用2:

    function Person(name,age){
        this.name=name;
        this.age=age;
        this.fav="唱歌";
    }
    function User(uname,pwd){
        this.uname=uname;
        this.pwd=pwd;
    }
    //使用prototype
    Person.prototype=new User();
    User.prototype.testU=function(){alter("我是user")};
    //使用类
    var p1=new Person("张三",32);
    var p2=new Person("李四",23);
    p1.testU();

    12.js中的自定义对象

      创建自定义对象

        对象的作用:用来存储整体数据

        原因:很多时候我们没有办法预先知道一个对象应该有哪些属性,所以只有临时的创建一个对象来自定义属性存储数据,来保证数据完整性

        应用:

          Ajax使用

        使用:

          创建自定义对象

            var 对象名=new Object();

            对象名.属性名1=属性值1;

            对象名.属性名2=属性值2;

            对象名.属性名3=属性值3;

            ......

            var 对象名={}

            对象名.属性名1=属性值1;

            对象名.属性名2=属性值2;

            对象名.属性名3=属性值3;

            ......

          一般用来存储数据,不会在自定义对象中存储函数对象

          js中的对象属性和内容是可以自定义扩充的,不是依赖于类的声明的,类只是对象公共部分的一种声明,是为了节省代码冗余 

    13.js的事件机制

      概念:基于监听的,一个动作会触发其他事务的执行

      作用:根据用户的行为触发响应的js函数的执行,实现网页和用户之间的互动

      使用:

        单双击事件:

          单击事件:onclick

          双击事件:ondblclick

        鼠标移动事件:

          鼠标悬停事件:onmouseover  

          鼠标移除事件:onmouseout

        键盘事件

          键盘下压事件:onkeydown

          键盘弹起事件:onkeyup

        焦点事件:

          获取焦点:onfocus

          失去焦点:onblur

        值改变事件:

          专门给select标签使用

          onchange事件    当下拉框的值改变时触发

        页面加载事件:

          专门给body标签使用

          onload        当页面加载成功后触发

      注意:

        事件是作为html标签的属性来使用

        一个html标签可以同时使用多个事件,但是注意事件之间的相互干扰

    14.js的常用方法和对象

      作用:js将常用的功能封装好,调用即可,不用重复的封装

      String对象

        使用:字符串.函数名

        大小写转换:

          toUpperCase()  转换大写

          toLowerCase()  转换小写

        字符串截取:

          substr(0,1)    从指定开始位置截取指定长度字符串

          substring(0,1)    从指定为位置开始到指定位置结束的字符串(含头不含尾)

        查找字符位置

          indexOf      返回指定字符第一次出现的位置

          lastIndexOf     返回指定字符最后一次出现的位置

    //创建字符串
    var str="abcdefg";
    //大小写转换
    alert(str.toUpperCase()+":"+str.toLowerCase());
    //字符串截取
    alert(str.substr(0,1)+str.substring(0,1));

      Date对象 

      使用:

        var 变量名=new Date();

      注意:

        获取的是客户端的时间,不能作为系统功能校验的时间

    //创建对象日期
    var d=new Date();
    //操作时间和日期
        //获取年份
        alert(d.year());//返回从1900年算起距今的年份数
        alert(d.getFullYear());//返回当前的年份
        //获取月份
        alert(d.getMonth()+1);//返回当前的月份数
        //获取日期
        alert(d.getDate());//返回当前的日期
        //获取星期数
        alert(d.getDay());//返回星期数,注意星期日返回0
        //获取小时数
        alert(d.getHours());//返回当前小时数
        //获取分钟数
        alert(d.getMinutes());//返回当期分钟数
        //获取秒数
        alert(d.getSeconds());//返回当前秒数

      Math对象

      使用:

        Math.函数名()

        random()

        round()

        ceil()

        floor()

      Global对象

    //eval()方法:将字符串转换成js代码执行
    eval("var a=123;");
    
    //isNaN():判断Number强转后的内容是否是数字
    if(!isNaN(a)){
        alert("是数字");
    }else{
        alert("不是数字");
    }        
        
    //parseInt("abc");   //NaN
    //parseInt("12abc");//12
    //parseFloat();

     15.js的window对象

      BOM浏览器对象模型:是规范浏览器对js语言的支持(js调用浏览器本身的功能)

      BOM的具体实现是window对象

      window对象的使用

        window对象不用new,直接使用即可,类似Math的使用方式,window关键字可以省略不写

        框体方法

    <script type="text/javascript">
        //警告框
        function testAlert(){
            window.alert("aaa");
        }
        //确认框(点击确定返回true,取消返回false)
        function testConfirm(){
            window.confirm("你确认要删除吗?");
        }
         //提示框(点击确定放回当前用户录入的字符串,默认返回空字符串,点击取消返回null)
        function testPrompt(){
            window.prompt("你输入昵称:");
        }
    </script>

        定时和间隔执行方法 

    <script type="text/javascript">
        //定时执行 指定时间后执行指定的函数 参数1:函数对象 参数2:时间,单位毫秒 返回值:返回当前定时器的id
        function testSetTimeout(){
            window.setTimeout(function(){
                alert("我是定时执行");
            },3000);
        }
    
        //间隔执行 每间隔指定的时间执行指定的函数 参数1:函数对象 参数2:时间,单位毫秒 返回值:返回当前间隔器的id
        function testSetInterval(){
            window.setInterval(function(){
                alert("我是间隔执行");
            },2000);
        }
    
        //停止指定的定时方法 参数:定时器的id
        function testClearTimeout(){
            window.clearTimeout(id);
        }
    
        //停止指定的间隔方法 参数:间隔器的id
        function testClearInterval(){
            window.clearInterval(id);
        }
    </script>

        子窗口方法

    son.html:

    <html>
        <head>
            <title>son</title>
            <meta charset="UTF-8"/>
            <script type="text/javascript">
                //倒计时功能
                function testTime(){
                    window.setInterval(function(){
                        var span=document.getElementById("timeSpan");
                        span.innerHTML=span.innerHTML-1;
                        //关闭子页面
                        if(span.innerHTML==0){
                            window.close();
                        }
                    },1000);     
                }   
            </script>
        </head>
        <body onload="testTime">
            <h3>son</h3>
            <hr/>
            <b>欢迎来到本页面,<span id="timeSpan" style="color: red;font-size: 20px;">5</span>秒后页面关闭</b>
        </body>    
    </html>

    window.open('子页面的资源(相对路径)','打开方式','配置');

    <script type="text/javascript">
        function testOpen(){
            window.open('son.html','newwindow','height=100,width=400,top=100px,left=320px,toolbar=yes,menubar=yes,scrollbars=yes,resizable=no,location=yes,status=yes');
        }   
    </script>

        子页面调用父页面的函数

          window.opener.父页面的函数

    <html>
        <head>
            <title>son</title>
            <meta charset="UTF-8"/>
            <script type="text/javascript">
                //倒计时功能
                function testTime(){
                    window.setInterval(function(){
                        var span=document.getElementById("timeSpan");
                        span.innerHTML=span.innerHTML-1;
                        //关闭子页面
                        if(span.innerHTML==0){
                            window.close();
                        }
                    },1000);     
                }   
                //调用父页面函数
                function testFa(){
                    window.opener.testFather();
                }
            </script>
        </head>
        <body onload="testTime">
            <h3>son</h3>
            <hr/>
            <b>欢迎来到本页面,<span id="timeSpan" style="color: red;font-size: 20px;">5</span>秒后页面关闭</b>
            <input type="button" name="" id="" value="调用父页面函数" onclick="testFa"/>
        </body>    
    </html>    
    <script type="text/javascript">
        function testOpen(){
            window.open('son.html','newwindow','height=100,width=400,top=100px,left=320px,toolbar=yes,menubar=yes,scrollbars=yes,resizable=no,location=yes,status=yes');
        }   
        function testFather(){
            alert("父页面");
        }
    </script>

        js的window对象的常用属性

          地址栏属性--location

            作用:资源跳转方式,动态修改地址栏信息  

            window.location.href="新的资源路径"

            window.location.reload()重新加载页面资源  

    function testLocation(){
        window.location.href="http://www.baidu.com";
    }
    
    function testLocation(){
         //刷新
        window.location.reload();
    }

          历史记录属性

            window.history.forwad()   页面资源前进,历史记录的前进

            window.history.back()   页面资源后退,历史记录后退

            window.history.go(index) 跳转到指定的历史记录资源

              注意:

                window.history.go(0);相当于刷新

                window.history.go(1);前一页

    function testHistory(){
        window.history.forward();
    }

          屏幕属性

            window.screen.width;获取屏幕的宽度分辨率

            window.screen.height;获取屏幕的高度分辨率

    function testScreen(){
        var x=window.screen.width;
        var y=window.screen.height;
       alert(x+":"+y);
    }

          浏览器配置属性

            window.navigator.userAgent:获取浏览器属性

    function testNa(){
        alert(window.navigator.userAgent);
    }

          主题面板属性(document)

    16.document对象

      概念:

        浏览器对外提供的支持js的用来操作HTML文档的一个对象,此对象封存HTML文档的所有信息

      使用:

        (1)获取HTML元素对象

            直接获取方式:

              通过id

    function testGetEleById(){
        var inp=window.document.getElementById("");
        alert(inp);
    }

              通过name属性值

    function testGetEleByName(){
        var favs=window.document.getElementByName("");
        alert(favs);  
    }

              通过标签名

    function testGetEleByTagName(){
        var inps=window.document.getElementByTagName("");
        alert(inps);
    }

              通过class属性

    function testGetEleByClassName(){
        var inps=window.document.getElementByClassName("");
        alert(inps);
    }

            间接获取方式:

              父子关系

    function testParent(){
        //获取父级元素对象
        var showdiv=document.getElementById("showdiv");
        //获取所有的子元素对象数组
        var childs=showdiv.childNodes;
        alert(childs);
    }

              子父关系

    function testChild(){
        //获取子元素对象
        var inp=document.getElementById("inp");
        //获取父元素对象
        var div=inp.parentNode;
        alert(div);
    }

              兄弟关系

    function testBorther(){
        //兄获取弟
        var inp=document.getElementById("inp");
        var preEle=inp.previousSibling;//第获取兄
        var nextEle=inp.nextSibling;//兄获取第
    }

        (2)操作HTML元素对象的属性

            获取元素对象

            操作元素属性

              获取

                元素对象名.属性名//返回当前属性的属性值

                元素对象名.getAttribute("属性名");//返回自定义属性的值

              修改

                元素对象名.属性名=属性值

                元素对象名.setAttribute("属性名","新的值");//修改自定义属性的值

              注意:

                尽量不要修改元素的id值和name属性值

                使用自定义方式获取固有属性,value的值获取的是默认值,不能够获取到实时的用户数据

    function testFiled(){
        //获取元素对象
        var inp=document.getElement("");
        //获取元素的属性值
        alert(inp.type+":"+inp.name+":"+inp.id+":"+inp.value);
    }
    function testFiled2(){
        //获取元素对象
        var inp=document.getElementById("");
        //修改元素属性
        inp.value="哈哈";
        inp.type="button";
    }
    声明函数--自定义属性
    function testOwnField(){
        //获取元素对象
        var inp=document.getElementById("");
        //获取自定义属性的值
        alert(inp.getAttribute("abc"));
    }
    //修改
    function testOwnField2(){
        //获取元素对象
        var inp=document.getElementById("");
        //修改自定义属性的值
        inp.setAttribute("属性名","新的值");
    }

        (3)操作HTML元素对象的内容和样式

           操作元素内容

             获取元素对象

               获取

                元素对象名.innerHTML//返回当前元素的所有内容,包括HTML标签

                元素对象名.innerText//返回当前元素的文本内容,不包括HTML标签

               修改  

                元素对象名.innerHTML="新的值"//会将原有内容覆盖,并且HTML标签会被解析

                元素对象名.innerHTML=元素对象名.innerHTML+"新的值"//追加

                元素对象名.innerText="新的值"//会将原有内容覆盖,但是HTML标签不会被解析,会作为普通文本显示

    //获取元素内容
    function getContext(){
        //获取元素对象
        var div=document.getElementById("");
        //获取元素内容
        div.innerHTML;
        div.innerText;
    }
    //获取元素内容
    function updateContext(){
        //获取元素对象
        var div=document.getElementById("");
        //修改元素内容
        div.innerHTML="12332";
        div.innerHTML="<b>12332</b>";      
    }

          操作元素样式--style方式

    function testOperCss(){
        //获取元素对象
        var showdiv=document.getElementById("");
        //添加元素样式
        showdiv.style.backgroundColor="red";
        //修改
        showdiv.style.border="solid 2px red";
        //删除
         showdiv.style.border="";
    }    

          操作元素样式--className方式

    function testOperCss2(){
        //获取元素对象
        var div=document.getElementById("");
        //获取
        div.className
        //修改类选择器样式
        div.className="新的值";
        //添加类选择器样式
        div.className="新的值";
        //删除
        div.className="";
    }    

        (4)操作HTML的文档结构

           增加节点

           删除节点

           第一种方式:使用innerHTML

                 父节点.removeChild(子结点对象)//删除指定的子节点

    function testAdd(){
        //获取元素对象
        var showdiv=document.getElementById("showdiv");
        //给div追加上传按钮
        showdiv.innerHTML=showdiv.innerHTML+"<div><input type='file'  value='' /><input type='button' value='删除' onclick='delInp(this)'/></div>";
    }    
    
    function delInp(btn){
        //获取父级div
        var showdiv=document.getElementById("showdiv");
        //获取要删除的子div
        var cdiv=btn.parentNode; 
        //父div删除子div
        showdiv.removeChild(cdiv);
    }

            第二种方式:

    function testOper2(){
        //获取元素对象
        var showdiv=document.getElementById("");
        //创建input元素对象
        var inp=document.createElement("input");
        inp.type="file";
        //创建按钮元素对象
        var btn=document.createElement("input");
        btn.type="button";
        btn.value="删除";
        btn.onclick=fuction(){
            showdiv.removeChild(inp);
            showdiv.removeChild(btn);
            showdiv.removeChild(br);
        }
        //创建换行符
        var br=document.createElement("br");
        //将创建的元素对象存放在div种
        showdiv.appendChild(inp);
        showdiv.appendChild(btn);
        showdiv.appendChild(br);
    }    

        (5)document操作Form元素

           获取表单对象

             使用id: var fm=documentElementById("fm");

             使用name属性:var frm=document.frm;

           获取form下的所有表单元素对象集合

             表单对象.elements

           form表单的常用方法

             表单对象.submit();//提交表单

             表单对象.reset();//清空表单

           form表单的属性操作

             表单对象.action="新的值";//动态的改变数据的提交路径

             表单对象.method="新的值";//动态的改变提交方式

           form表单元素的通用属性

             readonly:不可以更改,但是数据可以提交

             disabled:不可以进行任何操作,数据不会提交

    function testForm(){
        //获取form表单对象
        var fm=documentElementById("fm");
        //获取form表单元素对象集合
        fm.elements

        (6)document操作表单元素

            js操作多选框、单选框

              被选中状态下在js中checked属性值为true,未选中状态为false

            js操作下拉框

              被选中的option对象在js中selected属性值为true,未选中状态为false

    function testCheckBox(){
        //获取所有的多选元素对象数组
        var favs=document.getElementsByName("fav");
        //遍历数组
        for(var i=0;i<favs.length;i++){
            if(favs[i].checked){
                ...
            }
        }
    }
    
    function testSel(){
        //获取下拉框对象
        var sel=document.getElementsByName("***");
        //获取option对象集合
        var os=sel.options;
        for(var i=0;i<os.length;i++){
            if(os[i].select){
                ...
            }
        }
    }
    
            

        (7)document对象实现form表格校验

            通过监听事件+正则进行逻辑判断

        (8)document操作table表格

            行对象.rowIndex//返回行对象的角标

            删除行:表格对象.deleteRow(要删除的行对象的角标);

    <tr id="t1">
        <td>java从入门到放弃</td>
        <td>wollo<td>
        <td>43.50</td>
        <td id="ceil">3</td>
        <td align="center">
            <input type="button" name="" id="" value="修改数量" onclick="updateRow(this)"/>
            <input type="button" name="" id="" value="删除" onclick="delRow(this)"/>
        </td>
    </tr>
    <script type="text/javascript">
        function delRow(btn){
            //获取table对象
            var ta=document.getElementById("ta");
            //获取需要删除的行对象
            var tr=btn.parentNode.parentNode;
            //删除行
            ta.deleteRow(tr.rowIndex);
        }
    </script>

             修改行

    function updateRow(btn){
        //获取单元格对象
            //获取行对象
            var tr=btn.parentNode.parentNode;
            var cell=tr.cells[3];
        //判断单元格内容
        if(!isNaN(Nummber(cell.innerHTML))){
            //修改单元格内容
            cell.innerHTML="<input type='text' value='" +cell.innerHTML+ "' onblur='updateRow2(this)'/>";
        }
    }
    
    function updateRow2(inp){
         //获取单元格对象
        var cell=inp.parentNode;
        //实现保存
        cell.innerHTML="inp.value";
    }

             选择删除

    function chooseDel(){
        //获取表格对象
        var ta=document.getElementById("ta");
        //获取要删除的行号
        var chks=document.getElementsById("chks");
        for(var i=0;i<chks.length;i++){
            if(chks[i].checked){
                //删除行
                ta.deleteRow(i--);
            }
        }
    }

            添加行

    function addRow(){
        //获取表格对象
        var ta=document.getElementById("ta");
        //添加行
        var tr=ta.insertRow(1);
        //添加单元格
        var cell0=tr.insertCell(0);
        cell0.innerHTML="<input type='checkbox' name='chk'/>";
        tr.insertCell(1);
        cell1.innerHTML="<input ... />";
        tr.insertCell(2);
        cell2.innerHTML="<input ... />";
        tr.insertCell(3);
        cell3.innerHTML="<input ... />";
        tr.insertCell(4);
        cell4.innerHTML="<input ... />";
        tr.insertCell(5);
        cell5.style.textAlign="center";
        cell5.innerHTML="<input type='button' value='修改数量' onclick='updateRow(this)' /><input type='button' value='删除' onclick='delRow(this)' />";
    }
  • 相关阅读:
    在Html中使用echarts图表
    html+css模拟微信对话
    解决React 的<img >src使用require的方式图片显示不出来,展示的是[object Module]的问题
    easygui入门
    python安装easygui
    关于gcc、make和CMake的区别
    FreeRTOS使用心得。
    C/C++整数输出位不足前补0方法
    AngularJS前端分页 + PageHelper后端分页
    AngularJS常见指令
  • 原文地址:https://www.cnblogs.com/mxj961116/p/11074645.html
Copyright © 2011-2022 走看看