HTML的DOM操作看一篇就够了

1、常用的DOM操作方法

方法描述
getElementById()返回带有指定 ID 的元素。
getElementsByTagName()返回指定标签名称的所有元素(数组)
getElementsByClassName()返回所有标签中class="指定值"的元素。
appendChild()把新的子节点添加到指定节点。
removeChild()删除子节点。
replaceChild()替换子节点。
insertBefore()在指定的子节点前面插入新的子节点。
createAttribute()创建属性节点。
createElement()创建元素节点。
getAttribute()返回指定的属性值。
setAttribute()把指定属性设置或修改为指定的值。

2、访问HTM与元素的方法

  • 通过给HTML元素起id使用getElementById 方法来访问
<script>
	document.getElementById("btn"); /*这样就获取到id=btn的元素了*/
</script>
  • 通过给HTML元素的class=“名字” 使用getElementsByClassName() 来访问,这个获取的是一个数组

    <script>
      let Parr = document.getElementsByClassName("Pname");/*获取所有class="Pname的元素"*/
    </script>
    
  • 通过getElementsByTagName() 来获取HTML元素,这是通过标签的来获取的,也是一个数组

    <script>
    	let inputs = document.getElementById("main").etElementsByTagName("input");/*获取id=main下的所有input元素*/
    </script>
    
    <script>
    	let inputs = document.etElementsByTagName("input");/*获取HTML中所有的input元素*/
    </script>
    

    3、改变HTML的内容或样式

    3.1改变内容

    示例:当点击按钮时h1中的内容由 中国----->华夏

    使用了事件 在按钮上添加事件,当点击按钮时触发,然后通过innerText 把h1中的内用改变。

    同时innerText可以获取标签中的内容 用法:‘document.getElementById(“chain”).innerText’ 获取 id = chain的内容

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>测试</title>
    </head>
    <body>
    
    <h1 id = "chain">中国</h1>
    <button id = 'btn'>按钮</button>
    
    </body>
    </html>
    
    <script>
        document.getElementById("btn").onclick = function () {
            document.getElementById("chain").innerText = "华夏";
        }
    </script>
    
    
    3.2改变样式

    示例:当点击按钮时h1中的内容由中国---->华夏,黑色---->红色

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>测试</title>
    </head>
    <body>
    
    <h1 id = "chain">中国</h1>
    <button id = 'btn'>按钮</button>
    
    </body>
    </html>
    
    <script>
        document.getElementById("btn").onclick = function () {
            document.getElementById("chain").innerText = "华夏";
            document.getElementById("chain").style.color = "red";
        }
    </script>
    

    4、元素

    4.1添加元素

    示例:在id= main下添加一个p

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>测试</title>
    </head>
    <body>
    
    <div id = "main">
    </div>
    <button id = 'btn'>添加</button>
    
    </body>
    </html>
    
    <style>
        #main{
            width: 100%;
        }
    </style>
    
    <script>
        document.getElementById("btn").onclick = function () {
            let p = document.createElement("p");
            p.innerText="从来就没有什么意外,也许你的故事并不是从快乐开始的,可这不能决定你的一生,你想要的变成什么样子,全看你自己的选择.\n"+
            "你患得患失,太在意从前,又太担心将来,有句话说得好,昨天是段历史,明天是个谜团,\n" +
                "    而今天是天赐的礼物,像珍惜礼物那样珍惜今天,越想逃避宿命,越会在半道上跟宿命撞个正着,你的思绪\n" +
                "    就像这池水一样朋友,稍有外界触动,就很难清澄明朗,可如果让它静下来,答案顿时就变得清晰了。\n" +
                "    愿我们在这繁华的世间,找到自己的摆渡人,渡尽世间的苦难。";
            p.style.fontSize = "18px";
            p.style.color="red";
            let div = document.getElementById("main");
            div.appendChild(p);
        }
    </script>
    
    4.2删除元素

    示例:删除id= “main” 中选中的p

    在删除按钮上添加事件,获取id = "main"下的所有 p,然后在每一个p上添加事件。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>测试</title>
    </head>
    <body>
    
    <div id = "main">
        <p>123</p>
        <p>456</p>
        <p>789</p>
        <p>111</p>
    </div>
    <button id = 'btn'>删除</button>
    
    </body>
    </html>
    
    <style>
        #main{
            width: 100%;
        }
    </style>
    
    <script>
        document.getElementById("btn").onclick = function () {
           let ps = document.getElementById("main").getElementsByTagName("p");
           for (let i = 0; i < ps.length; i++){
               let p = ps[i];
               p.onclick = function () {
                    let result = confirm("确定要删除\" "+p.innerText+"\"吗?");
                    if (result){
                        p.parentNode.removeChild(p);
                    }
               }
           }
        }
    </script>
    

    5、综合示例

    实现对表格数据的增加删除以及列表数据增加删除

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>JS测试</title>
    </head>
    <body>
    
    <ul>
        <li>中国</li>
        <li>日本</li>
        <li>韩国</li>
    </ul>
    <button id="btn1">给ul中的每个li添加事件</button>
    <br/><br/>
    请输入国家:<input class="add" type="text"/>&nbsp;&nbsp;<button id="btn2">添加国家</button>
    <hr/>
    <br/>
    
    姓名:<input class="tab" type="text"/><br/>
    年龄:<input class="tab" type="text"/><br/>
    性别:<select class="tab"><option></option><option></option></select><br/>
    <button id="btn3">保存</button>
    <table class="user">
        <tr><td>姓名</td>
            <td>年龄</td>
            <td>性别</td>
            <td>是否删除</td>
        </tr>
        <tr><td>Tom</td>
            <td>18</td>
            <td></td>
            <td><a href="delete from 表名 where id = ?">删除</a></td>
        </tr>
        <tr><td>Amy</td>
            <td>18</td>
            <td></td>
            <td><a href="delete from 表名 where id = ?">删除</a></td>
        </tr>
        <tr><td>Jack</td>
        <td>19</td>
        <td></td>
        <td><a href="delete from 表名 where id = ?">删除</a></td>
    </tr>
    
    </table>
    
    </body>
    </html>
    
    <style>
        .user{
            width: 50%;
            text-align: center;
            margin-left: 25%;
        }
        input{
            width: 15%;
        }
        select{
            width: 16%;
        }
    
        #btn3{
            font-size: 15px;
            color: white;
            background-color: yellowgreen;
        }
    </style>
    
    <script>
        //删除li
        document.getElementById("btn1").onclick = function () {
            let lis = document.getElementsByTagName("li");
            for (let i = 0; i < lis.length ; i++) {
                let li = lis[i];
                li.onclick = function () {
                   let result = confirm("确定要删除"+li.innerText + "吗?");
                   if (result){
                       document.getElementsByTagName("ul")[0].removeChild(li);
                   }
                }
            }
        };
        //添加li
        document.getElementById("btn2").onclick = function () {
            let val = document.getElementsByClassName("add")[0].value;
            let li = document.createElement("li");
            li.innerText = val;
            document.getElementsByTagName("ul")[0].appendChild(li);
        };
    
        // 点击提交吧元素天机进 表格里边
        document.getElementById("btn3").onclick = function () {
            let inputs = document.getElementsByClassName("tab");
            let tr = document.createElement("tr");
            for (let i = 0; i < inputs.length; i++) {
                let td = document.createElement("td");
                td.innerText = inputs[i].value;
                tr.appendChild(td);
                if (i == inputs.length - 1){
                    let td1 = document.createElement("td");
                    let a = document.createElement("a");
                    a.innerText = "删除";
                    a.setAttribute("href","delete from ' 表名' where id = ?");
                    td1.appendChild(a);
                    tr.appendChild(td1);
                    a.onclick = function () {
                        let result = confirm("确定要删除"+inputs[0].value+"吗?");
                        if (result){
                            this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);
                        }
                        return false;
                    }
                }
            }
            let table = document.getElementsByTagName("table")[0];
            table.appendChild(tr);
        };
    
        // 删除元素
        let a = document.getElementsByTagName("a");
        for (let i = 0; i < a.length; i++) {
            a[i].onclick = function () {
                let name = this.parentNode.parentNode.firstChild.innerText;
                let result = confirm("确定要删除"+name+"吗?");
                if (result){
                    this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);
                }
                return  false;
            }
        }
    </script>
    

    写在最后

    传送门:DOM操作教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值