【Java Web_05】DOM

2021-02-04 10:10:06 浏览数 (1)

一、DOM概述

1. 什么是DOM
代码语言:javascript复制
* Document Object Model 文档对象模型
2. 核心DOM
代码语言:javascript复制
① Document:文档对象
② Element:元素对象
③ Attribute:属性对象
④ Text:文本对象
⑤ Comment:注释对象

⑥ Node:节点对象,其他5个的父对象

二、Document

1. 获取Element对象
代码语言:javascript复制
① getElementById()
    根据id属性值获取元素对象。id属性值一般唯一
② getElementsByTagName()
    根据元素名称获取元素对象们。返回值是一个数组
③ getElementsByClassName()
    根据Class属性值获取元素对象们。返回值是一个数组
④ getElementsByName()
    根据name属性值获取元素对象们。返回值是一个数组
2. 创建Element对象
代码语言:javascript复制
① createAttribute()
② createComment()
③ createElement()
④ createTextNode()

三、Element对象

1. 方法
代码语言:javascript复制
① setAttribute()
    设置属性
② removeAttribute()
    删除属性

四、Node对象

1. 概述
代码语言:javascript复制
* HTML文档会生成一个DOM树。
2. 方法
代码语言:javascript复制
① appendChild()
    向节点的子节点列表的结尾添加新的子节点。
② removeChild()    
    删除(并返回)当前节点的指定子节点。
③ replaceChild()
    用新节点替换一个子节点。
3. 属性
代码语言:javascript复制
* parentNode :返回节点的父节点。

innerHTML 获取/设置标签体内容 【该标签会刷新父标签内所有内容,会导致id绑定的监听失效,需要设置属性绑定】

五、事件监听机制

1. 点击事件:
代码语言:javascript复制
① onclick        单击事件
② ondblclick    双击事件
2. 焦点事件
代码语言:javascript复制
① onblur    失去焦点
② onfocus    元素获得焦点。
3. 加载事件
代码语言:javascript复制
① onload    一张页面或一幅图像完成加载。
4. 鼠标事件
代码语言:javascript复制
① onmousedown    鼠标按钮被按下。
② onmouseup        鼠标按键被松开。
③ onmousemove    鼠标被移动。
④ onmouseover    鼠标移到某元素之上。
⑤ onmouseout    鼠标从某元素移开。
5. 键盘事件
代码语言:javascript复制
① onkeydown        某个键盘按键被按下。    
② onkeyup        某个键盘按键被松开。
③ onkeypress    某个键盘按键被按下并松开。
6. 选择和改变
代码语言:javascript复制
① onchange        域的内容被改变。
② onselect        文本被选中。
7. 表单事件:
代码语言:javascript复制
① onsubmit        确认按钮被点击。
② onreset        重置按钮被点击。

六、示例

代码语言:javascript复制
    //动态添加表格数据,实现全选
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            table {
                width: 500px;
                margin: auto;
                border: 2px silver solid;
                text-align: center;
            }
            tr, td, th {
                border: 2px silver solid;
            }
            .div {
                margin-bottom: 20px;
                text-align: center;
            }
            a:link {
                color: red;
                text-decoration: none;
            }
        </style>
    
    </head>
    <body>
    <div class="div">
        <input type="text" name="num" id="num"/>
        <input type="text" name="name" id="name"/>
        <input type="text" name="gender" id="gender"/>
        <input type="button" name="but" value="提交" id="but"/>
    </div>
        <table id="table">
            <tr>
                <th>
                    <input type="checkbox" id="box" οnclick="f(this)"/>
                </th>
                <th>
                    序号
                </th>
                <th>
                    姓名
                </th>
                <th>
                    性别
                </th>
                <th>
                    操作
                </th>
            </tr>
        </table>
    
    <script>
        //获取table元素
        var table = document.getElementById("table");
        //获取按钮元素
        var but = document.getElementById("but");
     
        //设置按钮单击事件
        but.onclick = function () {
     
           //追加一行数据
           table.innerHTML  =
                   "<tr>"  
                       "<td>"   "<input type='checkbox' name='checked'/>"   "</td>"  
                       "<td>"   document.getElementById("num").value   "</td>"  
                       "<td>"   document.getElementById("name").value   "</td>"  
                       "<td>"   document.getElementById("gender").value   "</td>"  
                       "<td>"   "<a href='javascript:void(0)' οnclick='del(this)'>删除</a>"   "</td>"  
                   "</tr>";
        };
     
        //删除节点方法
        function del(obj) {
            var b = confirm("真的要删除吗");
            if (b) {
                //获取table节点  删除   获取tr节点
                obj.parentNode.parentNode.parentNode.removeChild(obj.parentNode.parentNode);
            }
        }
     
        var a = document.getElementById("a");
        a.onclick = function () {
            var b = confirm("真的要删除吗");
            if (b) {
                //获取table节点  删除   获取tr节点
                this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);
            }
        };
     
        function f(box) {
            var cd = document.getElementsByName("checked");
            if (box.checked === true) {
                for (var i = 0; i < cd.length; i  ) {
                    cd[i].checked = true;
                }
            } else {
                for (var i = 0; i < cd.length; i  ) {
                    cd[i].checked = false;
                }
            }
        }
    </script>
</body>
</html>

0 人点赞