15天学会jQuery编程与实战(视频教学版) (Web前端技术丛书)
上QQ阅读APP看书,第一时间看更新

3.5 通过for…of为页面中的元素循环指定ID

当我们为页面中添加多个同类元素时,可以通过循环的方式为元素指定ID或value,以方便后面的操作。

目前,jQuery 3支持两种循环:for和for…of。其中,for…of是新增的循环方式。当增加按钮时,需要为按钮指定value值,让其显示按钮的名字,这里通过两个例子演示。

【示例3-5】for.html

        01    <! DOCTYPE HTML>
        02    <html>
        03    <head>
        04    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        05   <title>for循环</title>
        06    <script type="text/javascript" src="../jquery-3.1.1.js"></script>
        07    <script type="text/javascript">
        08      $(document).ready(function(e) {
        09        $("#btn1").click(function(e) {
        10           $("#test2").after("<input type='button' /><br/>");  //添加按钮
        11           $("#test2").after("<input type='button' /><br/>");  //添加按钮
        12             $("#test2").after("<input type='button' /><br/>"); //添加按钮
        13               var $inputs = $('input');
        14             for(var i = 0; i < $inputs.length; i++) {       //循环为按钮添加值
        15                 $inputs[i].value = ’按钮’ + i;
        16               }
        17        });
        18    });
        19    </script>
        20    </head>
        21
        22    <body>
        23    <p id="test">
        24   给所有input指定值
        25    </p>
        26    <div>
        27   <button id="btn1">添加3个按钮</button>
        28    </div>
        29    <div id="test2"></div>
        30    </body>
        31    </html>

在HTML页面设计一个div,用来放置新添加的3个按钮。按钮通过第10~12行的after()方法添加。第14~16行使用for循环逐个为新添加的按钮添加value值。因为使用了从0开始的循环,所以按钮的值依次是按钮0、按钮1和按钮2。本示例效果如图3.6所示。

图3.6 添加按钮并赋值

上面的功能同样可以使用jQuery 3.X支持的for..of实现。

【示例3-6】for-of.html

        01    <script type="text/javascript">
        02      $(document).ready(function(e) {
        03        $("#btn1").click(function(e) {
        04           $("#test2").after("<input type='button' /><br/>");  //添加按钮
        05           $("#test2").after("<input type='button' /><br/>");  //添加按钮
        06             $("#test2").after("<input type='button' /><br/>"); //添加按钮
        07               var $inputs = $('input');
        08               var i = 0;
        09             for(var input of $inputs) {                             //循环
        10                 input.value = ’按钮’ + i++;
        11               }
        12         });
        13    });
        14    </script>

本示例的代码在一些有代码检查的编辑器中可能会提示第9行错误,如Dreamweaver的错误提示,如图3.7所示。因为旧的代码没有这种for的写作方式。但这不影响程序在浏览器中正常输出,输出效果与图3.6相同。

图3.7 Dreamweaver错误提示