打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
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'被忽略
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
python?利用lxml?解析xml文件
DOM精简教程
自动驾驶路径规划:A*(Astar)算法
QT 读取XML详解(转)
DOM解析
JavaScript學習筆記:DOM的操作
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服