javascript - 想问一下`appendChild`的一些问题
大家讲道理
大家讲道理 2017-04-11 09:44:25
[JavaScript讨论组]
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <ul class="ct">
            <li class="item">
                <span class="s">1</span>
                1
            </li>
            <li class="item">
                <span class="s">4</span>
                1
            </li>
            <li class="item">
                <span class="s">3</span>
                1
            </li>
            <li class="item">
                <span class="s">2</span>
                1
            </li>
        </ul>
        <script type="text/javascript">
            var oul=document.getElementsByClassName("ct")[0];
            var oli=document.getElementsByClassName("item");
            var copyul=[];
            for(var i=0;i<oli.length;i++){
                copyul.push(oli[i]);
            }
            copyul.sort(function(a,b){
                return a.firstElementChild.innerText-b.firstElementChild.innerText;
            })
            for(var j=0;j<copyul.length;j++){
                oul.appendChild(copyul[j]);
            }    
        </script>
    </body>
</html>

问题是我一开始复制了item里面的每一项,最后把里面的每一项appendChild到oul里面,为什么之前的那个就消除了,appendChild不是在元素末尾添加了,不应该复制了一份添加到末尾么,为什么还是4个item,而不是8个

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(1)
PHPz
copyul.push(oli[i]);

改为

copyul.push(oli[i].cloneNode(true));

之所以原来的没增加新的节点是因为你操作的节点对象本来就是页面中的那4个。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号