<div>
<input/>
<span></span>
</div>
function nodeToFragme(node){
var flag = document.createDocumentFragment();
var child;
while(child = node.firstChild ){
flag.appendChild(child); //请问为什么能够每次插入不同的节点?
}
return flag ;
}
为什么每次appendChild都能够插入不同的节点?不应该每次都是第一个节点么?
appendChild 成功后,会把节点从原来的节点位置移除;
当进入 while 循环的下次执行 (child=node.firstChild) 时, 这里面运算的 firstChild 已经变成了原先移除的下一个节点;
直到 node 中再也没有节点时,(child=node.firstChild) 的返回值会为「false」,这时循环就结束了,appendChild 也完成了。
附注:
https://developer.mozilla.org...