Dom8 js实现排序

getElementsByTagName() / getElementsByClassName()

返回的不是array 是元素集合 只有length和[]可以使用

appendChild()

1 先把元素从原有父级上删掉
2 添加到新父级末尾

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>

    <script>
        window.onload = function(){
            var btn = document.getElementById("sort");
            var ul = document.getElementsByTagName("ul")[0];
            var lis = ul.getElementsByTagName("li");  // 返回的不是array 是元素集合 只有length和[]可以使用
            console.log(typeof lis); // object  

            //lis.sort(); //Uncaught TypeError: lis.sort is not a functionat window.onload (dom6.html:13)

            var arr = [];
            btn.onclick = function(){
                for(var i = 0; i < lis.length; i++){
                    arr[i] = lis[i];
                }

                arr.sort(function(li1, li2){
                    return parseInt(li1.innerHTML) - parseInt(li2.innerHTML);
                });

                for(var i = 0; i < arr.length; i++){
                    ul.appendChild(arr[i]); //1 先把元素从原有父级上删掉 2 添加到新父级末尾
                }
            }
        }
    </script>
</head>
<body>
<button id="sort">排序</button>
<ul>
    <li>55</li>
    <li>18</li>
    <li>33</li>
    <li>77</li>
    <li>46</li>
    <li>41</li>
    <li>88</li>
    <li>22</li>
    <li>125</li>
</ul>

</body>
</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 2016.9.9 第6章 原型与面向对象 原型虽然是定义对象的一种很方便的方式,但它的本质依然是函数特性。 使用原...
    如201608阅读 710评论 0 0
  • 笔记来自慕课网的js和《JavaScript DOM编程艺术》一书以及《JavaScript权威指南》一书的学习。...
    恰皮阅读 740评论 3 3
  • 整理了下之前JS的学习笔记,基础部分的知识。1.className设置标签的css类的时候不能直接使用class,...
    田心今心九日阅读 265评论 0 0
  • 本章内容 理解包含不同层次节点的 DOM 使用不同的节点类型 克服浏览器兼容性问题及各种陷阱 DOM 是针对 HT...
    闷油瓶小张阅读 668评论 0 1
  • 每次喝完咖啡之后的那个晚上,注定是一个不眠之夜。 静静的夜晚失眠了,望着黑黑的天空,思绪飘远,想起一些事情来,思绪...
    糖小酱阅读 1,340评论 6 7