fragment.appendChild()的移动性
2019-10-12 本文已影响0人
震雨Rain
请看一下代码
把节点移动到内存中的封装函数
node2fragment(node) {
let fragment = document.createDocumentFragment();//创建一个文档碎片
let firstChild;
while (firstChild = node.firstChild) {
fragment.appendChild(firstChild);
}
return fragment;
}
很多人会对一下代码存在疑惑
这样不就进入死循环了吗?
while (firstChild = node.firstChild) {
fragment.appendChild(firstChild);
}
奥秘就在于这句话
fragment.appendChild(firstChild);
appendChild
方法具有可移动性
将el
中的节点移动到了fragment
当中
大家可以在循环后打印一下node.firstChild
,会发现是Null