美文网首页软件测试
软件测试攻略(十九):JS进阶_数组&事件函数&

软件测试攻略(十九):JS进阶_数组&事件函数&

作者: DayBreakL | 来源:发表于2018-05-28 17:30 被阅读18次

    一、数组

    1. 一维数组

    (1)创建一个数组
    方法一:

      var arr = new Array();
      arr[0] =10;
      arr[1] =20;
    

    方法二:

    var arr= new Array(10,20,30……);
    

    方法三:
    var arr=[10,20,30……];
    (2)遍历一个一维数组

    for(var i=0;i<arr.length;i++){
        alert(arr[i]);
    }
    

    【tips】
    length属性是长度的意思,arr.length即数组arr的数组长度。

    1. 二维数组
      javascript不支持多维数组,可以用虚拟数组实现,就是数组的元素也是数组。
      (1)创建二维数组
      方法一:
    var arr1= new Array(10,20,30……)
    var arr2= new Array(110,120,130……)
    var arr=[arr1,arr2]
    

    方法二:

    var arr =[[10,20,30],[110,120,130]];
    

    (2)遍历数组

    for(var i=0;i<arr.length;i++){
        for(var j=0;j<arr[i].length;j++){
            alert(arr[i][j]);
        }
    }
    

    二、事件函数

    1. onclick:
      事件会在元素被点击时发生。
      上述的遍历数组,我们每一次刷新页面就会跑一遍,但是通常,我们希望只在需要的时候它才出现,所以我们将他写成一个方法,需要的时候调用。
    <script>
    function foreachArr(){
        var arr = new Array();
        var arr1 = new Array(10,20,30,40,50,60);
        var arr2 = new Array(110,120,130,140,150,160);
        arr[0] = arr1;
        arr[1] = arr2;
        for(var i=0;i<arr.length;i++){
            for(var j=0;j<arr[i].length;j++){
                alert("a["+i+"]["+j+"]="+arr[i][j]);
            }
        }
    }
     foreachArr();
    </script>
    
    

    然而每次刷新,调用也会刷新,仍然会每次出现。
    所以用到onclick事件,只有在鼠标点击时才会触发事件。

    <body>
        <input type="button" value="点我" onclick='foreachArr()' > 
    </body>
    
    image.png

    点击页面中的这个按钮,才会触发foreachArr()。

    【tips】onclick 属性可以使用与所有 HTML 元素,除了 :<base>, <bdo> <br>, <head>, <html>, <iframe>,<meta>, <param>, <script>, <style>, 和 <title>.

    1. window.onload
      必须等待网页中所有的内容加载完毕后 ( 包括图片 ) 才能执行。即所有body的内容执行完了才执行。

    2. onblur:
      onblur 事件会在对象失去焦点时发生。
      一般,我们经常用于Javascript验证代码,一般用于表单输入框。

    <input type="text" name="input" value="请输入" onblur="text()">
    
    • 即一个文本框,值是“请输入”,当鼠标从文本框移开时,调用方法text();

    三、元素定位&修改页面

    1. 元素定位
    document.getElementById("Demo") ;//返回ID为"Demo"的对象
    document.getElementsByName("Demo") ; //返回Name属性为“Demo”的对象
    document.getElementsByClassName("example") //返回类名是"example"的对象
    
    1. 修改页面
    inner.HTML //用于设置或返回指定标签之间的 HTML 内容
    

    用法:

    document.getElementById("Demo").innerHTML=222;//返回ID为Demo的对象,更改它的html的内容为222。
    
    <html>
        <head> 
            <title>  </title>
            <meta charset='utf-8'>
            <script>
            window.onload= function foreachArr(){   //在body执行完之后再执行
                var arr = [[1,2,3,4,5],[11,22,33,44,55]];
                for(var i=0;i<arr.length;i++){
                    for(var j=0;j<arr[i].length;j++){
                    document.getElementById(i+"_"+j).innerHTML=arr[i][j];
                                    //返回ID为“i+'_'+j”的对象,将里面的HTML的内容改为arr[i][j]
                    }
                }   
            }
            </script>
        </head>
        <body>
                <table border="1">
                    <tr>
                        <td id="0_0" >001</td>
                        <td id="0_1" >002 </td>
                        <td id="0_2" >003</td>
                        <td id="0_3" >004</td>
                        <td id="0_4" >005 </td>
                    </tr>
                    <tr>
                        <td id="1_0" >001</td>
                        <td id="1_1" >002 </td>
                        <td id="1_2" >003</td>
                        <td id="1_3" >004</td>
                        <td id="1_4" >005 </td>
                    </tr>
                </table>
        </body>
    </html>
    

    没有<script></script>里代码,表格如下:


    image.png

    写了<script></script>里代码,表格如下:


    image.png
    • 即,通过document.getElementById(i+"_"+j).innerHTML=arr[i][j];把表格的内容修改了。
      【tips】如果没有window.onload,会先执行head里的内容,此时还没有body里的table,这样无法修改。

    相关文章

      网友评论

        本文标题:软件测试攻略(十九):JS进阶_数组&事件函数&

        本文链接:https://www.haomeiwen.com/subject/fppwjftx.html