JS知识回顾

ECMA Script:JS的基本语法
    变量
    数据类型
    流程控制语句
    函数
    对象:
        Math
        Date
        String
        Number
        Boolean——true, false(小写)
        Array []
        Object
            s = {name: "alex"}
            typeof s --> "object"
            记住是一个对象, 不是字典,而且前一个键不用加引号,JS中就是一个属性

    JS的序列化与反序列化:
        json数据:
            1. 一种轻量级的标准数据的交换格式
            2. 先将数据序列化成字符串格式
            3. 然后不同的语言使用不同的方法,即反序列化该字符串
            4. JS中
                s = "[12, 3, 45]"
                # 反序列化
                l = JSON.parse(s);
                # 序列化
                s = {name: "alex"};  // 这是一个对象
                l = JSON.stringfy(s); --> "{"name": "alex"}"  // 注意:在JS中,里面的数据一定是双引号

BOM:browser object model(JS对象控制浏览器)
    window.alert(); // 警告框,只有一个确定按钮
    window.confirm(); // 提示框,有确定按钮和取消按钮,有返回值,确定按钮返回true,取消按钮返回false
        let state = window.confirm("是否继续?");
        console.log(state);
        if (state) {
            // 继续逻辑
        } else {
            // 取消逻辑
        }
        let result = window.prompt("请输入一个数字:"); // 输入框,有返回值
        console.log(result);

DOM:document object model(JS对象控制文档)
    1. 查找标签
        直接查找:
            document.getElementById("idname")  // 返回DOM对象
            document.getElementsByTagName("tagname")  // 返回DOM对象数组
            document.getElementsByName("name")  // 返回DOM对象数组
            document.getElementsByClassName("classname")  // 返回DOM对象数组
            小技巧:ById的是getElement, 而其他的都是getElements!
                   因此只要是获取getElements对应元素的一定要加[0]

        导航查找:
            依赖一个或多个标签找到自己的父子兄弟标签
            .parentElement           // 父节点标签元素
            .chlidren                // 字节点标签元素
            .fristElementChild       // 第一个子标签元素
            .lastElementChild        // 最后一个子标签元素
            .nextElementSibling      // 下一个兄弟标签元素
            .previousElementSibling  // 上一个兄弟标签元素

    2. 操作标签
            获取文本节点的值:innerText    innerHTML
                div.innerHTML="alex"
                "alex"
                div.innerText="yuan" // 这个一般没必要用
                "yuan"
                div.innerHTML="<a href=''>click</a>"
                "<a href=''>click</a>"
                div.innerText="<a href=''>click</a>"
                "<a href=''>click</a>"

            操作属性
                ele=document.getElementById("i1")
                <div class=​"c1" id=​"i1" alex=​"xxx">​alex​</div>​
                ele.getAttribute("class")
                "c1"
                ele.getAttribute("alex")
                "xxx"
                ele.setAttribute("class","c2")
                undefined
                ele.removeAttribute("alex")
                undefined

            class属性操作
                ele.classList
                DOMTokenList(3) ["c1", "c2", "c3", value: "c1 c2 c3"]
                ele.classList.remove("c3")
                undefined
                ele.classList.remove("c1")
                undefined
                ele.classList.remove("c2")
                undefined
                ele.classList.add("c1")
                undefined
                ele.classList.add("c2")
                undefined
                ele.classList.add("c3")
                undefined
                ele.classList.add("c3")
                undefined
                ele.classList.add("c3")
                undefined
                ele.classList.remove("c2")
                undefined
                ele.classList.remove("c2")

            value属性操作(只用在以下三种标签内)
                input
                textarea
                select

            节点的增删改查(比如用在onchange事件中,选择省份及对应的城市,二级联动) *****
                创建节点(dom)
                let p = document.createElement("p");
                    p.innerHTML="abc";
                    p.setAttribute("class", "c1");

                添加节点
                    父节点.appendChild(子节点);

                删除节点
                    父节点.removeChile(子节点);

                替换节点
                    父节点.replaceChile(新节点, 旧节点);

 

posted @ 2019-03-02 15:33  星满夜空  阅读(138)  评论(0编辑  收藏  举报