zoukankan      html  css  js  c++  java
  • JS错误记录

    本次练习错误总结:

    1. for循环要套到按钮的onclick里面,否则onclick点击事件无法依次执行。

    2. var n1, var n2 这两个变量是arr.sort排序使用的,所以应该放在sort() 函数里面。

    3.arr.sort(function (li1,li2) 这个排序函数的li1, li2表示的是arr[ ] 这个数组里随机的两个数,这个命名和之前的aLi无关。不需要调用aLi为变量。

    4. for循环    for ( ) 条件语句末尾一定不能写分号。   分号表示该段运行结束。   条件语句末尾写上分号,for循环的函数就无法依次执行。

    注意点:

    1. parseInt  把字符串转换为数字,  方便排序。

    2. 数组排序。  (a, b)表示该数组中的随机数。

    arr.sort (function(a, b)) {
    
    };

    正确代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>排序</title>
        <script>
            window.onload = function () {
                var oBtn = document.getElementById('btn1');
                var oUl = document.getElementById('ul1');
    
                oBtn.onclick = function () {
                    var aLi = oUl.getElementsByTagName('li');
                    var arr = [];
    
                    for ( var i=0; i<aLi.length; i++){    //for循环的括号后面绝对不能加分号!!!!
                        arr[i] = aLi[i];
                    }
    
                    arr.sort(function (li1,li2) {
                    var n1 = parseInt(li1.innerHTML);
                                var n2 = parseInt(li2.innerHTML);
                                return n1-n2;
                            });
    
    
                    for (var j=0; j<arr.length; j++) {
                        oUl.appendChild(arr[j]);
                    }
                }
            }
        </script>
    </head>
    <body>
    <input id="btn1" type="button" value="排序">
    <ul id="ul1">
        <li>12</li>
        <li>72</li>
        <li>114</li>
        <li>5552</li>
        <li>78</li>
        <li>3</li>
    </ul>
    </body>
    </html>

    第一次的错误代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>排序</title>
        <script>
            window.onload = function () {
                var oUl = document.getElementById('ul1');
                var oBtn = document.getElementById('btn1');
                var aLi = oUl.getElementsByTagName('li');
                var arr = [];
                
                for (var i=0; i<aLi.length; i++)  // for循环要套到按钮的onclick里面!!!!
                {
                    arr[i] = aLi[i];
                } 
                oBtn.onclick = function ()  //onclick事件在前,for循环在后!
                {
                    var n1 = parseInt(aLi[i].innerHTML)
                    //这两个变量是arr.sort排序使用的,所以应该放在sort函数里面。。
                    //可以试一下放在外面能不能顺利执行
                    var n2 = parseInt(aLi[i].innerHTML)
    
                    arr.sort(function (aLi1,aLi2) { //这个函数的参数怎么写??
                        return n1-n2;
                    })
                }
            }
        </script>
    </head>
    <body>
    <input id="btn1" type="button" value="排序">
    <ul id="ul1">
        <li>266</li>
        <li>115</li>
        <li>86</li>
        <li>6</li>
        <li>420</li>
    </ul>
    </body>
    </html>
  • 相关阅读:
    中国年薪 ¥30 万和美国年薪$ 10 万的生活水平异同
    汽车之家CMDB设计思路 – 汽车之家运维团队博客
    平民软件 | 中间件
    FIT2CLOUD
    ZeroBrane Studio
    新炬网络-领先数据资产运营商 | 数据资产管理 | 数据库运维 | 自动化运维
    中国(南京)软件开发者大会
    夏仲璞 | 全球软件开发大会北京站2016
    Nginx下流量拦截算法 | 夏日小草
    docker~dockertoolbox的加速器
  • 原文地址:https://www.cnblogs.com/carpenterzoe/p/10156401.html
Copyright © 2011-2022 走看看