• js appendChild 自带remove和append两个功能


    一提到appendChild ,我们就知道是在父节点上增加子节点。

    经常使用到它就是动态增加一个元素,将其加入到指定的父节点下。

    其实appendChild除了这个功能之外,他还有一个功能:如果子节点不是动态创建的元素,而是在某个元素下的子元素,那么他还会自动执行一次removeChild功能。

    举个栗子:将ul1下的li移动到ul2下:

    html:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>appendChild自带removeChild功能</title>
            <style type="text/css">
                #ul1{
                    background: red;
                }
                #ul2{
                    background: greenyellow;
                }
            </style>
        </head>
        <body>
            <ul id="ul1">
                <li>1</li>
                <li>2</li>
                <li>3</li>
                <li>4</li>
            </ul>
            <button id="btn1">移动</button>
            <ul id="ul2"></ul>
        </body>
    </html>

    正常思路下的javascript:

    <script type="text/javascript">
        var ul1 = document.getElementById("ul1");
        var ul2 = document.getElementById("ul2");
        var btn1 = document.getElementById("btn1");
        btn1.onclick = function(){
            //获取ul1下所有li
            olis = ul1.getElementsByTagName("li");
            if(olis.length>0){
                //获取ul1下的第一个li
                var oLi = ul1.children[0];
                //删除ul1下面的第一个li
                ul1.removeChild(oLi);
                //给ul2下面增加ul1下的第一个Li
                ul2.appendChild(oLi);
            }
        }
    </script>

    去掉removeChild下的javascript:

    <script type="text/javascript">
        var ul1 = document.getElementById("ul1");
        var ul2 = document.getElementById("ul2");
        var btn1 = document.getElementById("btn1");
        btn1.onclick = function(){
            //获取ul1下所有li
            olis = ul1.getElementsByTagName("li");
            if(olis.length>0){
                //获取ul1下的第一个li
                var oLi = ul1.children[0];
                //删除ul1下面的第一个li
                //ul1.removeChild(oLi);
                //给ul2下面增加ul1下的第一个Li
                ul2.appendChild(oLi);
            }
        }
    </script>

    其实有没有removeChild ul1下的li效果都是一样的,因为appendChild()会先remove子元素之前位置父元素下的该元素,然后再新的父元素上添加该子元素。

  • 相关阅读:
    SQL 语言入门
    [转载]Sql Server 中的Login,Schema,User,Role之间的关系
    稀疏矩阵运算
    特征缩放的几种方法
    dp解出栈序列数
    神经网络解决多分类问题例:数字识别
    多分类例题
    fminunc 函数的用法
    二分类
    特征归一化、特征映射、正则化
  • 原文地址:https://www.cnblogs.com/zzd0916/p/7743361.html
Copyright © 2020-2023  润新知