JS节点操作(2)- 创建节点,添加节点,删除节点,复制节点

节点操作

1. 创建节点

document.createElement() 

2. 添加节点

2.1 node.appendChild(child) 添加到子元素数组的末尾

<body>
    <ul>
        <li>I'm here</li>
    </ul>
    <script>
        var ul = document.querySelector('ul');
        // 创建节点
        var li = document.createElement('li');
        // appendChild() 添加到末尾
        ul.appendChild(li);
        console.log(ul);
    </script>
</body>

以上代码得到结果:

这里我给li加了一个样式list-style: none;去除前面小圆点。我们可以看到创建的li添加到了原有小li的后面。

2.2 node.insertBefore(child, 指定元素) 添加到指定子元素的前面

<body>
    <ul>
        <li>I'm here</li>
        <li>wow</li>
    </ul>
    <script>
        var ul = document.querySelector('ul');
        // 创建节点
        var li = document.createElement('li');
        // insertBefore() 添加到指定元素的前面
        ul.insertBefore(li, ul.children[1]);
        console.log(ul);
    </script>
</body>

以上代码得到结果:

我们把创建的li添加到了第二个子元素的前面。 

3. 删除节点

3.1 node.removeChild(child) 删除指定子节点,返回删除的节点

<body>
    <ul>
        <li>I'm here</li>
        <li>wow</li>
    </ul>
    <script>
        var ul = document.querySelector('ul');
        // removeChild() 删除节点 返回删除的节点
        ul.removeChild(ul.children[0]);
        console.log(ul);
    </script>
</body>

以上代码得到结果:

第一个子节点被删除了。

4. 复制节点 

4.1 cloneNode() 复制节点

复制节点要注意,cloneNode()括号里面为空或者里面是false则为浅拷贝,只复制标签不复制里面的内容。cloneNode(true) 括号里为true则为深拷贝,复制标签和里面的内容。

<body>
    <ul>
        <li>I'm here</li>
        <li>wow</li>
    </ul>
    <script>
        var ul = document.querySelector('ul');
        // 克隆节点
        // cloneNode()括号里面为空或者里面是false 浅拷贝 只复制标签不复制里面的内容
        // cloneNode(true) 括号里为true 深拷贝 复制标签复制里面的内容
        var li1 = ul.children[0].cloneNode(true);
        var li2 = ul.children[1].cloneNode();
        ul.appendChild(li1);
        ul.appendChild(li2);
        console.log(ul);
    </script>
</body>

以上代码得到结果:

不要忘记克隆之后还要添加节点~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值