javascript - 一道原生JS的问题

查看:118
本文介绍了javascript - 一道原生JS的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

    <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...

这篇关于javascript - 一道原生JS的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆