• appendChild与append区别


    appendChild()

    var childNode = parentNode.appendChild(childNode);
    

    该方法的参数是一个Node对象,返回值依然是该Node对象(参数中的childNode和返回值childNode指向同一个Node对象)

    html代码

    <div id="container1">
       <h1>标题1</h1>
       <p>段落1</p>
    </div>
    

    js代码

    let container1 = document.getElementById('container1');
    let p2 = document.createElement('p');
    p2.textContent = '段落2';
    let p22 = container1.appendChild(p2)
     
    

    显示结果

    如果想要将页面中原有的节点插入到另外一个地方,节点会先从原位置移除,然后再插入到新位置。如果想要在原位置保留该节点,则需要先进行cloneNode,创建待插入节点的副本,然后再进行插入操作。

    html代码

    <div id="container1">
        <h1>标题1</h1>
        <p>段落1</p>
    </div>
    <div id="container2"></div>
    

    js代码

    let p1 = document.querySelector('p');
    let p11 = p1.cloneNode(true); // //cloneNode参数设置成true,表示连同子节点一起克隆,如果设置成false,则只有p元素会被克隆
    let container2 = document.getElementById('container2');
    p11 = container2.appendChild(p11)
    console.log(p1 === p11) //false
    

    显示结果

    ParentNode.append 方法
    ParentNode.append 方法在 ParentNode的最后一个子节点之后插入一组 Node 对象或 DOMString 对象。
    被插入的 DOMString 对象等价为 Text 节点。

    与 Node.appendChild() 的差异:

    (1)ParentNode.append()允许追加 DOMString 对象,而 Node.appendChild() 只接受 Node 对象。

    let container2 = document.querySelector('#container2')
    container2.append('text') //成功在容器container2中插入textContent为‘text’的文本节点
    let text1 = container2.appendChild('text') //报错
    

    (2)ParentNode.append() 没有返回值,而 Node.appendChild() 返回追加的 Node 对象。

    let container2 = document.querySelector('#container2')
    let r = container2.append('text') //成功在容器container2中插入textContent为‘text’的文本节点
    console.log(r);
    let p = document.createElement('p');
    p.textContent = 'ppp';
    let r1 = container2.appendChild(p);
    console.log(p);
    

    (3)ParentNode.append() 可以追加多个节点和字符串,而 Node.appendChild() 只能追加一个节点。

    container2.append(p11, 'haha')
    let haha1 = container2.appendChild(p11, 'haha') //只会添加p11,字符串’haha‘被忽略
    
  • 相关阅读:
    git版本控制工具的使用(1)。
    python ui学习过程,使用pyqt5实现
    python下使用opencv拍照
    python的数字图像处理学习(3)
    python的数字图像处理学习(2)
    python的数字图像处理学习(1)
    tensorflow下识别手写数字基于MLP网络
    使用tensorflow下的GPU加速神经网络训练过程
    LSTM长短期记忆神经网络模型简介
    RNN模型(递归神经网络)简介
  • 原文地址:https://www.cnblogs.com/jellyz/p/13925489.html
Copyright © 2020-2023  润新知