zoukankan      html  css  js  c++  java
  • 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子元素之前位置父元素下的该元素,然后再新的父元素上添加该子元素。

  • 相关阅读:
    微访谈之1:解答各位朋友关心的问题
    深入浅出SQL Server中的死锁(实战篇)
    怎样玩转千万级别的数据
    Another MySQL daemon already running with the same unix socket
    c++ undefined reference to mysqlinit
    Another MySQL daemon already running with the same unix socket
    linxu 挂载分区
    C# RSA
    谷歌地图实现车辆轨迹移动播放(google map api)
    百度地图实现车辆轨迹移动播放(baidu map api)
  • 原文地址:https://www.cnblogs.com/zzd0916/p/7743361.html
Copyright © 2011-2022 走看看