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子元素之前位置父元素下的該元素,然后再新的父元素上添加該子元素。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM