【JavaWeb】DOM

DOM

将标记语言文档的各个组成部分,封装为对象。可以使用这些对象,对标记语言文档进行CRUD的动态操作
W3C  DOM  标准被分为 3 个不同的部分:
	核心 DOM - 针对任何结构化文档的标准模型
		Document:文档对象
		Element:元素对象
		Attribute:属性对象
		Text:文本对象
		Comment:注释对象
		
		Node:节点对象,其他5个的父对象
	XML  DOM - 针对 XML 文档的标准模型
	HTML DOM - 针对 HTML 文档的标准模型

核心DOM模型:

Document:文档对象
	1.创建(获取):在html dom模型中可以使用window对象来获取
		1.window.document
		2.document
	2.方法:
		1.获取Element对象
			1.getElementById():根据id属性值获取元素对象。id属性值一般唯一
			2.getElementsByTagName():根据元素名称获取元素对象们.返回值是一个数组
			3.getElementsByClassName():根据Class属性值获取元素对象们。返回值是一个数组
			4.getElementsByName():根据name属性值获取元素对象们。返回值是一个数组
		2.创建其他DOM对象
			create Attribute(name)
			crateComment()
			creatElement()
			creatTextNode()
	3.属性
Element:元素对象
	1.获取/创建:通过document来获取和创建
	2.方法:
		1.removeAttribute():删除属性
		2.setAttribute():设置属性
Node:节点对象,其他5个的父对象
	特点:所有dom对象都可以被认为是一个节点
	方法:
		CRUD dom树:
			appendChild():向节点的子节点列表的结尾添加新的子节点。
			removeChild():删除(并返回)当前节点的指定子节点。
			replaceChild():用新节点替换一个子节点。
		属性:
			parentNode  返回节点的父节点。

动态表格案例:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>动态表格</title>
    <style>
        div{
            margin: 50px;
            text-align: center;
        }
        table{
            border: solid 1px;
            margin: auto;
            width: 500px;
        }
        th,td{
            text-align: center;
            border: 1px solid;
        }



    </style>
</head>
<body>
    <div>
        <input id="id" type="text" placeholder="请输入编号">
        <input id="name" type="text" placeholder="请输入姓名">
        <input id="gender" type="text" placeholder="请输入性别">
        <input id="btn" type="button" value="添加">
    </div>
    <table >
        <caption>学生信息表</caption>
        <tr>
            <th>编号</th>
            <th>姓名</th>
            <th>性别</th>
            <th>操作</th>
        </tr>
        <tr>
            <td>1</td>
            <td>令狐冲</td>
            <td></td>
            <td><a href="javascript:void (0);" onclick="delTr(this);">删除</a></td>
        </tr>
        <tr>
            <td>2</td>
            <td>任我行</td>
            <td></td>
            <td><a href="javascript:void (0);" onclick="delTr(this);">删除</a></td>
        </tr>
        <tr>
            <td>3</td>
            <td>任盈盈</td>
            <td></td>
            <td><a href="javascript:void (0);" onclick="delTr(this);">删除</a></td>
        </tr>
    </table>
<script>
    document.getElementById("btn").onclick = function () {
        // 获取文本框的内容
        var id = document.getElementById("id").value;
        var name = document.getElementById("name").value;
        var gender = document.getElementById("gender").value;

        //创建td,赋值td的标签体
        var td_id = document.createElement("td");
        var text_id = document.createTextNode(id);
        td_id.appendChild(text_id);

        var td_name = document.createElement("td");
        var text_name = document.createTextNode(name);
        td_name.appendChild(text_name);

        var td_gender = document.createElement("td");
        var text_gender = document.createTextNode(gender);
        td_gender.appendChild(text_gender);

        var td_a = document.createElement("td");
        var ele_a = document.createElement("a");
        ele_a.setAttribute("href","javascript:void(0);");
        ele_a.setAttribute("onclick","delTr(this);");
        var text_a = document.createTextNode("删除");
        td_a.appendChild(ele_a);
        ele_a.appendChild(text_a);

        var tr = document.createElement("tr");
        tr.appendChild(td_id);
        tr.appendChild(td_name);
        tr.appendChild(td_gender);
        tr.appendChild(td_a);

        var table = document.getElementsByTagName("table")[0];
        table.appendChild(tr);

        function delTr(obj) {
            alert(obj);
            var table = obj.parentNode.parentNode.parentNode;
            var tr = obj.parentNode.parentNode;

            table.removeChild(tr);
        }


    }
</script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值