JS——DOM节点操作

这篇博客详细介绍了JavaScript中DOM节点的操作,包括创建、添加、插入、替换和删除等基本操作。通过document.createElement创建元素,使用appendChild、insertBefore进行节点位置调整,replaceChild实现替换节点,以及removeChild和remove方法删除节点。还提到了克隆节点的cloneNode方法。内容还涉及了表单元素的内容获取,以及在实际操作中与删除相关的注意事项。

主要包括

创建添加插入替换删除克隆

创建:document.createElement('标签名')
创造一个指定标签元素,返回的是一个创建好的元素节点、

如果浏览器无法识别标签名就会生成一个未知HTML元素

一般流程----

1创建空对象(只能用document调用)
2为空元素添加关键属性和内容
3将空元素加载到dom树中

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

 

把这个子节点追加到父节点下所有子元素的末尾,如果加入的子节点已经存在DOM树中,那么就会改变该子节点的位置

插入:父节点.insetBefore(要插在哪个节点前面就写哪个节点)

 

它在参考节点之前插入了一个有父元素的子节点,如果引用的节点是文档树里面的,那么这个方法会把这个参考节点从原位置移动到新位置

替换:父节点.replaceChild(新节点,旧节点)

它会替换父元素下一个现有的旧节点,它会返回被替换掉的节点

删除:

方法1:父节点.removeChild(子节点)。从父节点中删除一个子节点

方法2:节点.remove().该节点自杀(element.remove()把对象从它所属的DOM树删除)

克隆:节点.cloneNode(是否为克隆后代节点)

把该节点复制克隆出一个一模一样的,返回调用该方法的副本



document是我们的根,所以我们调用要用它打头阵
表单元素内容是表单元素.value

但凡跟删除挂钩的都要做判断

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #user_table{
            border: 1px solid black;
            width: 500px;
            border-collapse: collapse;
        }
        #user_table th,
        #user_table td{
            border: 1px solid black;
            text-align: center;
        }
        #from_div{
            border: 1px solid black;
            width: 500px;
            margin-top: 20px;
        }
    </style>
</head>
<body>
    <table id="user_table">
        <thead>
            <th>姓名</th>
            <th>年龄</th>
            <th>薪资</th>
        </thead>
        <tbody>
            <tr>
                <td>张三</td>
                <td>34</td>
                <td>2455</td>
                <td>
                    <a href="javascript:;">删除</a>
                </td>
            </tr>
            <tr>
                <td>张三</td>
                <td>34</td>
                <td>2455</td>
                <td>
                    <a href="javascript:;">删除</a>
                </td>
            </tr>
            <tr>
                <td>张三</td>
                <td>34</td>
                <td>2455</td>
                <td>
                    <a href="javascript:;">删除</a>
                </td>
            </tr>
        </tbody>
    </table>
    <div>
        <h2>添加新员工</h2>
        <table>
            <tr>
                <td id="word">姓名</td>
                <td class="input">
                    <input type="text"id='from_name'>
                </td>
            </tr>
            <tr>
                <td id="word">年龄</td>
                <td class="input">
                    <input type="text"id='from_age'>
                </td>
            </tr>
            <tr>
                <td id="word">薪资</td>
                <td class="input">
                    <input type="text"id='from_money'>
                </td>
            </tr>
            <tr>
                <td >
                    <button id="addbtn">提交按钮</button>
                </td>
            </tr>
        </table>
    </div>
    <script>
        //删除
        let allA=document.getElementsByTagName('a')
        //获取一个合集,然后遍历它们每一个删除
        for(let allkey of allA){
            allkey.onclick=function(){//绑定点击事件
                let allA=this
                //找到父元素删除
                let tr=allA.parentNode.parentNode
                console.log(tr)
                //删除前判断
                let username=tr.children[0].innerHTML //获取要删的
                if(confirm(`您确定要删除${username}么`)){
                   // tr.parentNode.removeChild('tr')
                   tr.parentNode.removeChild(tr)//这里是变量不需要写引号
                }
            }
            //添加用户信息
            //获取,添加按钮
            let addbtn=document.getElementById('addbtn')
            addbtn.onclick=function(){//绑定点击事件
                //获取填写的信息
                let names=document.getElementById('from_name').value
                let ages=document.getElementById('from_age').value//获取信息的值
                let moneys=document.getElementById('from_money').value
                //1将我们的输入的内容添加到user_table的tr中
                let tr=document.createElement('tr')//创建tr
                let nametd=document.createElement('td')//创4个td
                let agetd=document.createElement('td')
                let moneytd=document.createElement('td')
                let atd=document.createElement('td')
                let a=document.createElement('a')//创建td的a
                //2创建文本节点 里面放你的值
                let nametext=document.createTextNode(names)
                let agetext=document.createTextNode(ages)
                let moneytext=document.createTextNode(moneys)
                let deletext=document.createTextNode('删除')
                //3创建的节点添加到td里
                nametd.appendChild(nametext)
                agetd.appendChild(agetext)
                moneytd.appendChild(moneytext)
                a.appendChild(deletext)//添加删除给a标签
                atd.appendChild(a)//把a添加到td里
                //4.将td添加到tr里
                tr.appendChild(nametd)
                tr.appendChild(agetd)
                tr.appendChild(moneytd)
                tr.appendChild(atd)
                //5.还没给超连接添加href属性呢!
                a.href='javascript:;'
                a.onclick=function(){
                    let allA=this
                    let tr=allA.parentNode.parentNode
                    let username=tr.children[0].innerHTML
                    if(confirm(`你确定要删除&{username}吗`)){
                        tr.parentNode.removeChild(tr)
                    }
                }
                //继续往table塞,将tr添加到tbody中,先获取哦!
                let user_table=document.getElementById('user_table')
                let tbody=user_table.getElementsByTagName('tbody')[0]
                tbody.appendChild(tr)
            }
        }
    </script>
</body>
</html>

这个小练习的效果是可以从别的窗口对表格进行更改并显示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值