• JavaScript-ECMAScript、BOM、DOM


    Q1:javaScript组成

    1.ECMAScript描述了该语言的语法和基本对象,如类型、运算、流程控制、面向对象、异常

    2.文档对象模型(DOM),描述了处理网页内容的方法和接口

    3.浏览器对象模型(BOM),描述了与浏览器进行交互的方法和接口

    Q2:JavaScript脚本语言特点

    1:解释型的脚本语言

    2:简单

    3:动态性

    4:跨平台性

    Q3:数据类型

    5种原始数据类型:Undefined、Null、Boolean、Number和String,Object是引用类型

    Q4:值为underfine的情况

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
            <script>
                //js对象
                var user = {
                    name: "张学友",
                    address: "中国香港"
                };
                var users={
                    id:1,
                    name:"老张"
                };
                console.log(users.age);
                 console.log(user.age);//访问对象中的属性,未定义
                 var i;
                 console.log(i);
                 function show(obj){
                     console.log(obj);    
                     return obj;
                 };
                 var result=show(3);console.log(result);
                 console.log(null==undefined);
                 console.log("----------------");
                 console.log(typeof(user));
                 console.log(typeof(null));                        
                 console.log(typeof(undefined));
                 console.log("");
                 console.log(!!"");
            //是否不为数字,is Not a Number console.log(isNaN(
    "five")); </script> </body> </html>

    Q5:数组

    1:数组一些方法

    Array 对数组的内部支持
    Array.concat( ) 连接数组
    Array.join( ) 将数组元素连接起来以构建一个字符串
    Array.length 数组的大小
    Array.pop( ) 删除并返回数组的最后一个元素
    Array.push( ) 给数组添加元素
    Array.reverse( ) 颠倒数组中元素的顺序
    Array.shift( ) 将元素移出数组
    Array.slice( ) 返回数组的一部分
    Array.sort( ) 对数组元素进行排序
    Array.splice( ) 插入、删除或替换数组的元素
    Array.toLocaleString( ) 把数组转换成局部字符串
    Array.toString( ) 将数组转换成一个字符串
    Array.unshift( ) 在数组头部插入一个元素

    实例:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
            <script>
                //数组的创建
                var arr1=new Array();
                var arr2=[];//语法糖
                var arr3=new Array(1,2,3,4,"x","y");
                var arr4=new Array(10);//指定长度
                var arr5=[1,2,3,4,5,6,7];//定义并赋值
                //访问与修改
                console.log("-------访问------")
                console.log(arr3[4]);
                console.log("-------修改------")
                arr3[4]="z";
                console.log(arr3[4]);
                //添加元素
                console.log("-------往末尾添加元素------")
                //添加单个元素
                arr3.push(5);
                console.log(arr3);
                //添加多个元素
                arr3.push(6,"张");
                console.log(arr3);
                console.log("-------添加到开始------");
                arr3.unshift("第一个");
                console.log(arr3);
                console.log("-------添加到中间------");
                arr3.splice(1,0,"第二个","第三个");
                console.log(arr3);
                arr3.splice(1,1,"第二个","第三个");
                console.log(arr3);
                //删除
                console.log("--------移除最后一个元素并返回该元素值-----");
                arr3.pop();
                console.log(arr3);
                console.log("--------移除最前一个元素并返回该元素值-----");
                arr3.shift();
                console.log(arr3);
                console.log("------删除从指定位置deletePos开始的指定数量deleteCount的元素-------");
                arr3.splice(0,3);
                console.log(arr3);
                console.log("-----截取和合并-----");
                //截取
                var slice1=arr3.slice(0,3);
                console.log(slice1);
                //合并
                var concat1=arr3.concat(arr5);
                console.log(concat1);
                //拷贝
                var slice2=arr3.slice(0);
                console.log(slice2);
                var concat2=arr3.concat();
                console.log(concat2);
                //排序
                //正序
                arr5.sort();
                console.log(arr5);
                //倒序
                arr5.reverse();
                console.log(arr5);
                console.log("------合并成字符-----");
                var join1=arr5.join(",");
                console.log(join1);
                console.log("-- 拆分成数组----------");
                var str="w s z y w";
                var split1=str.split(" ");
                console.log(split1);
            </script>
        </body>
    </html>

     Q5:DOM操作

    实例1:

    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="UTF-8">
            <title>商品管理</title>
            <style type="text/css">
                .t {
                     100%;
                    margin: 0 auto;
                }
                
                #table1 {
                    border-collapse: collapse;
                     100%;
                }
                
                tr td:last-child {
                    text-align: center;
                }
                
                a {
                    margin: 0 5px;
                }
                
                span {
                    font-size: 12px;
                    color: red;
                }
                
                #fie {
                     400px;
                    border-radius: 5px;
                }
                
                #date,
                #id,
                #name,
                #price {
                     169px;
                }
                
                .trbc{
                    background-color: red;
                    color: #fff;
                }
            </style>
        </head>
    
        <body>
            <div class="t">
                <table id="table1" border="1" cellspacing="1" cellpadding="0">
                    <thead>
                        <tr>
                            <th>
                                <input type="checkbox" id="che" />
                                <label for="che">全选</label>
                            </th>
                            <th>商品编号</th>
                            <th>名称</th>
                            <th>价格</th>
                            <th>上货日期</th>
                            <th>是否下架</th>
                            <th>操作</th>
                        </tr>
                    </thead>
                    <tbody id="tbody"></tbody>
                </table>
                <fieldset id="fie">
                    <legend>添加/更新</legend>
                    <p>
                        <label for="id">商品编号:</label>
                        <input type="text" id="id" />
                        <span id="sum"></span>
                    </p>
                    <p>
                        <label for="name">商品名称:</label>
                        <input type="text" id="name" />
                        <span id="log"></span>
                    </p>
                    <p>
                        <label for="price">商品价格:</label>
                        <input type="text" id="price" />
                        <span id="pri"></span>
                    </p>
                    <p>
                        <label for="date">上货日期:</label>
                        <input type="date" id="date" />
                        <span id="da"></span>
                    </p>
                    <p>
                        <label>是否下架:</label>
                        <input type="radio" name="state" value="是" /><input type="radio" name="state" value="否" checked="checked" /></p>
                    <p>
                        <input type="button" id="add" value="添加" />
                        <input type="button" id="update" value="更新" />
                        <input type="button" id="delAll" value="删除选中项" />
                    </p>
                </fieldset>
            </div>
    
            <script type="text/javascript">
                var arr = [{
                        number: "201300001",
                        name: "lenovo A820T",
                        price: 650.0,
                        date: "2013-01-07",
                        state: "否"
                    },
                    {
                        number: "201300007",
                        name: "Acer 星锐 4752G",
                        price: 4000.8,
                        date: "2013-01-01",
                        state: "是"
                    },
                    {
                        number: "201300009",
                        name: "ZTE U880",
                        price: 450.0,
                        date: "2013-01-07",
                        state: "否"
                    }
                ];
                var app = {
                    init: function() {
                        var tr = "";
                        for(var i = 0; i < arr.length; i++) {
                            tr += "<tr>";
                            tr += "<td><input type='checkbox' value='" + i + "' class='che'/></td>";
                            tr += "<td>" + arr[i].number + "</td>";
                            tr += "<td>" + arr[i].name + "</td>";
                            tr += "<td>" + arr[i].price + "</td>";
                            tr += "<td>" + arr[i].date + "</td>";
                            tr += "<td>";
                            if(arr[i].state==="是"){
                                tr += "<input type='checkbox' value='" + i + "' class='state' checked='checked' disabled='disabled'/>";
                            }else{
                                tr += "<input type='checkbox' value='" + i + "' class='state' disabled='disabled'/>";
                            }
                            tr += "</td>";
                            tr += "<td>";
                            tr += "<a class='del' href='##' data-id='" + i + "'>删除</a>";
                            tr += "<a class='edit' href='##' data-id='" + i + "'>修改</a>";
                            tr += "<a class='finish' href='##' data-id='" + i + "'>详细</a>";
                            tr += "</td>";
                            tr += "</tr>";
                        }
                        document.getElementById("tbody").innerHTML = tr;
                        app.event();
                    },
                    //验证,基于对象验证
                    verify: function(tar) {
                        if(!(tar.number && /^[d]{9}$/.test(tar.number))) {
                            document.getElementById("sum").innerText = "*只能输入九位的数字";
                            return false;
                        } else {
                            document.getElementById("sum").innerText = "";
                        }
                        if(!(tar.name && /^.{1,30}$/.test(tar.name))) {
                            document.getElementById("log").innerText = "*长度只能是1-30位";
                            return false;
                        } else {
                            document.getElementById("log").innerText = "";
                        }
                        if(!(tar.price && /^d+(.d+)?$/.test(tar.price))) {
                            document.getElementById("pri").innerText = "*只能输入正数,如0.98";
                            return false;
                        } else {
                            document.getElementById("pri").innerText = "";
                        }
                        if(tar.date == "") {
                            document.getElementById("da").innerText = "*必须选择";
                            return false;
                        } else {
                            document.getElementById("da").innerText = "";
                        }
                        return true;
                    },
                    event: function() {
                        //绑定事件,删除
                        var del = document.getElementsByClassName("del");
                        for(var i = 0; i < del.length; i++) {
                            del[i].onclick = function() {
                                if(confirm("您确定要删除吗?")) {
                                    var id = this.getAttribute("data-id");
                                    arr.splice(id, 1);
                                    alert("删除成功");
                                    app.init();
                                } else {
                                    return false;
                                }
                            }
                        };
                        //绑定事件,添加
                        document.getElementById("add").onclick = function() {
                            var state1 = document.getElementsByName("state");
                            var state2;
                            for(var i = 0; i < state1.length; i++) {
                                if(state1[i].checked == true) {
                                    state2 = state1[i].value;
                                }
                            }
                            var ware = {
                                number: document.getElementById("id").value,
                                name: document.getElementById("name").value,
                                price: document.getElementById("price").value,
                                date: document.getElementById("date").value,
                                state: state2
                            };
                            if(app.verify(ware)) {
                                arr.push(ware); //正则校验
                                app.init(); //添加成功重新渲染页面
                            }
                        };
                        //绑定事件,编辑
                        var edit = document.getElementsByClassName("edit");
                        for(var i = 0; i < edit.length; i++) {
                            edit[i].onclick = function() {
                                id = this.getAttribute("data-id");
                                document.getElementById("id").value = arr[id].number;
                                document.getElementById("name").value = arr[id].name;
                                document.getElementById("price").value = arr[id].price;
                                document.getElementById("date").value = arr[id].date;
                                var state = document.getElementsByName("state");
                                for(var i = 0; i < state.length; i++) {
                                    if(state[i].value == arr[id].state) {
                                        state[i].checked = true;
                                    }
                                }
                            }
                        };
                        //绑定事件,更新
                        document.getElementById("update").onclick = function() {
                            var state1 = document.getElementsByName("state");
                            var state2;
                            for(var i = 0; i < state1.length; i++) {
                                if(state1[i].checked == true) {
                                    state2 = state1[i].value;
                                }
                            }
                            var ware = {
                                number: document.getElementById("id").value,
                                name: document.getElementById("name").value,
                                price: document.getElementById("price").value,
                                date: document.getElementById("date").value,
                                state: state2
                            };
                            if(app.verify(ware)) {
                                arr.splice(id,1,ware);
                                app.init(); //添加成功重新渲染页面
                            }
                        };
                        //绑定事件,多删除
                        document.getElementById("delAll").onclick = function() {
                            var cheAll = document.getElementsByClassName("che");
                            var index = [];
                            for(var i = 0; i < cheAll.length; i++) {
                                if(cheAll[i].checked == true) {
                                    index.push(cheAll[i].value);
                                };
                            };
                            if(index.length > 0) {
                                if(confirm("您确定要删除这些数据吗?")) {
                                    for(var i = index.length; i >= 0; i--) {
                                        arr.splice(index.pop(), 1);
                                    }
                                    app.init(); 
                                }
                            } else {
                                alert("您未选择");
                            }
                        };
                        //绑定事件,全选,反选
                        document.getElementById("che").onclick = function() {
                            var cheAll = document.getElementsByClassName("che");
                            if(this.checked == true) {
                                for(var i = 0; i < cheAll.length; i++) {
                                    cheAll[i].checked = true;
                                };
                            } else if(this.checked == false) {
                                for(var i = 0; i < cheAll.length; i++) {
                                    cheAll[i].checked = false;
                                };
                            }
                        };
                        //绑定事件,高亮显示
                        var tbody = document.getElementById("tbody").childNodes;
                        for (var i = 0; i < tbody.length; i++) {
                            tbody[i].onmousemove = function(){
                                this.className="trbc";
                            }
                            tbody[i].onmouseout = function(){
                                this.className="";
                            }
                        }
                        //绑定事件,定时判断复选框是否全部选中
                        setInterval(function() {
                            var cheAll = document.getElementsByClassName("che");
                            var index = [];
                            for(var i = 0; i < cheAll.length; i++) {
                                if(cheAll[i].checked == true) {
                                    index.push(cheAll[i].value);
                                };
                            };
                            if(cheAll.length != index.length) {
                                document.getElementById("che").checked = false;
                            } else if(index.length === 0) {
                                document.getElementById("che").checked = false;
                            } else {
                                document.getElementById("che").checked = true;
                            }
                        }, 14);
                    }
                };
                app.init();
            </script>
        </body>
    
    </html>
    View Code

    实例2:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <style>
            table,tr,td{
                border:1px solid red;
                border-collapse: collapse;
            }
            table{ 100%;text-align: center;}
            input[type="button"]{ 80px;}
            tbody tr td:last-child{ 400px;}
        </style>
        <body>
            <table id="table">
                <thead>
                    <td><input type="checkbox" id="checkFather" onclick="checkFather()"/></td>
                    <td>编号</td>
                    <td>任务</td>
                    <td>转态</td>
                    <td>操作</td>
                </thead>
                <tbody id="tbody">
                    
                </tbody>
            </table>
            <fieldset>
                <legend>数据添加</legend>
                <p>
                    <label>编号</label>
                    <input type="text" placeholder="情输入编号" id="id"/>
                </p>
                <p>
                    <label>任务</label>
                    <input type="text" placeholder="情输入任务" id="task"/>
                </p>
                <p>
                    <label>状态</label>
                    <select id="state">
                        <option value="未完成">未完成</option>
                        <option value="完成">完成</option>
                    </select>
                </p>
                <p>
                    <input type="button" value="添加" id="btnAdd" onclick="add()"/>
                    <input type="button" value="修改" id="btnUpdate" onclick="update()"/>
                    <input type="button" value="多项删除" id="btnDelMore" onclick="delMore()"/>
                </p>
            </fieldset>
            <script>
                var updateid="";
                var data=[{id:1,task:"上网",state:"未完成"},{id:2,task:"看电视",state:"完成"},{id:3,task:"听歌",state:"未完成"}];
                select();
                function select(){
                    var t=document.getElementById("tbody").getElementsByTagName("tr");
                    for(var j=t.length-1;j>=0;j--){
                        t[j].remove();
                    }
                    for(var i=0;i<data.length;i++){
                        var tr=document.createElement("tr");
                        var chkSon=document.createElement("input");
                        chkSon.setAttribute("type","checkbox");
                        chkSon.setAttribute("class","chkSon");
                        chkSon.setAttribute("value",i);
                        chkSon.setAttribute("onclick","javascript:checkSon()");
                        var tdId=document.createElement("td");tdId.innerHTML=data[i].id;
                        var tdTask=document.createElement("td");tdTask.innerHTML=data[i].task;
                        var tdState=document.createElement("td");tdState.innerHTML=data[i].state;
                        var Adel=document.createElement("input");
                        Adel.setAttribute("type","button");Adel.setAttribute("value","删除");Adel.setAttribute("onclick","javascript:del("+i+")");
                        var Astate=document.createElement("input");
                        var states=data[i].state;
                        if(states=="完成"){
                            states="未完成";
                        }else{
                            states="完成";
                        };
                        Astate.setAttribute("type","button");Astate.setAttribute("value",states);Astate.setAttribute("onclick","javascript:astate("+i+")");
                        var Aedit=document.createElement("input");
                        Aedit.setAttribute("type","button");Aedit.setAttribute("value","编辑");Aedit.setAttribute("onclick","javascript:edit(this,"+i+")");
                        var Atd=document.createElement("td");
                        Atd.appendChild(Adel);Atd.appendChild(Astate);Atd.appendChild(Aedit);
                        tr.appendChild(chkSon);
                        tr.appendChild(tdId);tr.appendChild(tdTask);tr.appendChild(tdState);
                        tr.appendChild(Atd);
                        document.getElementById("tbody").appendChild(tr);
                    }
                };
                function delMore(){
                    var tdcheck=document.getElementsByClassName("chkSon");
                    for(var i=tdcheck.length-1;i>=0;i--){
                        if(tdcheck[i].checked){
                            var chkid=tdcheck[i].value;
                            data.splice(chkid,1);
                        }
                    }
                    select();
                };
                function astate(obj){
                    var states=data[obj].state;
                    if(states=="完成"){
                        states="未完成";
                    }else{
                        states="完成";
                    };
                    data[obj].state=states;
                    select();
                };
                function del(obj){
                    data.splice(obj,1);select();
                };
                function edit(obj,i){
                    var td=obj.parentNode.parentNode.childNodes;
                    document.getElementById("id").value=td[1].innerText;
                    document.getElementById("task").value=td[2].innerText;
                    document.getElementById("state").value=td[3].innerText;
                    updateid=i;
                };
                function update(){
                    alert(updateid);
                    data[updateid].task=document.getElementById("task").value;
                    data[updateid].state=document.getElementById("state").value;
                    select();
                };
                function checkFather(){
                    var tdcheck=document.getElementsByClassName("chkSon");
                    var tdcheckFather=document.getElementById("checkFather");
                    if(tdcheckFather.checked){
                        for (var i=0;i<tdcheck.length;i++) {
                            tdcheck[i].checked="checked";
                        }
                    }else{
                        for (var i=0;i<tdcheck.length;i++) {
                            tdcheck[i].checked=false;
                        }
                    }
                };
                function checkSon(){
                    var len=0;
                    var tdcheck=document.getElementsByClassName("chkSon");
                    for(var i=0;i<tdcheck.length;i++){
                        if(tdcheck[i].checked){
                            len++;
                        }
                    }
                    var tdcheckFather=document.getElementById("checkFather");
                    if(len<tdcheck.length){
                        tdcheckFather.checked=false;
                    }else{
                        tdcheckFather.checked="checked";
                    }
                };
                function add(){
                    var id=document.getElementById("id").value;
                    var task=document.getElementById("task").value;
                    var state=document.getElementById("state").value;
                    data.push({id:id,task:task,state:state});
                    select();
                };
            </script>
        </body>
    </html>

     结果:

    另一种渲染表格的实例:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <style>
            table,tr,td{
                border:1px solid red;
                border-collapse: collapse;
            }
            table{ 100%;text-align: center;}
            input[type="button"]{ 80px;}
            tbody tr td:last-child{ 400px;}
        </style>
        <body>
            <table id="table">
                <thead>
                    <td><input type="checkbox" id="checkFather" onclick="checkFather()"/></td>
                    <td>编号</td>
                    <td>任务</td>
                    <td>转态</td>
                    <td>操作</td>
                </thead>
                <tbody id="tbody">
                    
                </tbody>
            </table>
            <fieldset>
                <legend>数据添加</legend>
                <p>
                    <label>编号</label>
                    <input type="text" placeholder="情输入编号" id="id"/>
                </p>
                <p>
                    <label>任务</label>
                    <input type="text" placeholder="情输入任务" id="task"/>
                </p>
                <p>
                    <label>状态</label>
                    <select id="state">
                        <option value="未完成">未完成</option>
                        <option value="完成">完成</option>
                    </select>
                </p>
                <p>
                    <input type="button" value="添加" id="btnAdd" onclick="add()"/>
                    <input type="button" value="修改" id="btnUpdate" onclick="update()"/>
                    <input type="button" value="多项删除" id="btnDelMore" onclick="delMore()"/>
                </p>
            </fieldset>
            <script>
                var data=[{"id":1,"task":"上网","state":"未完成"},{"id":2,"task":"看电视","state":"完成"},{id:3,task:"听歌",state:"未完成"}];
                select();
                function select(){
                    for(var j=0;j<data.length;j++){
                        var chkSon=document.createElement("input");
                        chkSon.setAttribute("type","checkbox");
                        var tr=document.getElementById("tbody").insertRow();
                        var Adel=document.createElement("input");
                        Adel.setAttribute("type","button");Adel.setAttribute("value","删除");
                        var Astate=document.createElement("input");
                        var states=data[j].state;
                        if(states=="完成"){
                            states="未完成";
                        }else{
                            states="完成";
                        };
                        Astate.setAttribute("type","button");Astate.setAttribute("value",states);
                        var Aedit=document.createElement("input");
                        Aedit.setAttribute("type","button");Aedit.setAttribute("value","编辑");
                        tr.insertCell().appendChild(chkSon);
                        for(var key in data[j]){
                            tr.insertCell().innerHTML=data[j][key];
                        }
                        var t=tr.insertCell();
                        t.appendChild(Adel);
                        t.appendChild(Astate);
                        t.appendChild(Aedit);
                    }
                };
            </script>
        </body>
    </html>
    zywds
  • 相关阅读:
    Python 极简教程(十)集合 set
    Python 极简教程(九)元组 tuple
    Python 极简教程(七)列表 list
    Python 极简教程(八)字符串 str
    DevOps实践之一:基于Docker构建企业Jenkins CI平台
    kubernetes实践之一:kubernetes二进制包安装
    Linux挖矿病毒 khugepageds详细解决步骤
    kubernetes实践之五:深入理解Service及内部DNS搭建
    kubernetes实践之四:深入理解控制器(workload)
    kubernetes实践之三:深入理解Pod对象
  • 原文地址:https://www.cnblogs.com/zywds/p/9950325.html
Copyright © 2020-2023  润新知