1. 程式人生 > 其它 >for迴圈中使用object[i].index=i的作用

for迴圈中使用object[i].index=i的作用

技術標籤:javascript

在object[i].index=i中:object為當前的陣列物件;index為給當前陣列物件新增的屬性,可以自定義名稱,用來存放索引值。這樣便可以使事件內部函式的索引位和for迴圈中i的值保持一致。

1.當for迴圈內部不包含事件時,i的值即為陣列的索引值。

示例程式碼:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        li
        {
width: 50px; height: 50px; line-height: 50px; margin-right: 10px; list-style: none; background-color: #c2ffc5; text-align: center; border-radius: 50%; display: inline-block; } </style>
</head> <body> <ul id="list"> <li class="box">0</li> <li class="box">1</li> <li class="box">2</li> <li class="box">3</li> <li class="box"
>4</li> <li class="box">5</li> <li class="box">6</li> </ul> <script> var arr = document.getElementsByClassName("box"); for (var i = 0; i < arr.length; i++) { console.log(i); } </script> </body> </html>

結果:
在這裡插入圖片描述

2.當for迴圈內部包含事件時,for迴圈先執行一遍,事件內部i的值就變成了迴圈結束時的i值,此時無論點選哪一個小球,都輸出的是最大索引位7。

示例程式碼:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        li
        {
            width: 50px;
            height: 50px;
            line-height: 50px;
            margin-right: 10px;
            list-style: none;
            background-color: #c2ffc5;
            text-align: center;
            border-radius: 50%;
            display: inline-block;
        }
    </style>
</head>
<body>
    <ul id="list">
        <li class="box">0</li>
        <li class="box">1</li>
        <li class="box">2</li>
        <li class="box">3</li>
        <li class="box">4</li>
        <li class="box">5</li>
        <li class="box">6</li>
    </ul>
    <script>
        var arr = document.getElementsByClassName("box");
        for (var i = 0; i < arr.length; i++) {
            arr[i].onclick=function(){
                console.log(i);
            };
        }
    </script>
</body>
</html>

結果:

在這裡插入圖片描述
3.當使用object[i].index=i後,無論點選哪一個小球,都輸出該小球所對應的索引位。

示例程式碼:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        li
        {
            width: 50px;
            height: 50px;
            line-height: 50px;
            margin-right: 10px;
            list-style: none;
            background-color: #c2ffc5;
            text-align: center;
            border-radius: 50%;
            display: inline-block;
        }
    </style>
</head>
<body>
    <ul id="list">
        <li class="box">0</li>
        <li class="box">1</li>
        <li class="box">2</li>
        <li class="box">3</li>
        <li class="box">4</li>
        <li class="box">5</li>
        <li class="box">6</li>
    </ul>
    <script>
        var arr = document.getElementsByClassName("box");
        for (var i = 0; i < arr.length; i++) {
            arr[i].index=i;
            arr[i].onclick=function(){
                console.log(this.index);
            };
        }
    </script>
</body>
</html>

結果:
在這裡插入圖片描述