each()外,怎么让console只执行一次

   <div id="d1">
        <div></div>
        <div></div>
        <div class="d2"></div>
        <div class="d2"></div>
    </div>
    <button>点击</button>
    <script src="jquery-1.10.1.min.js" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript">
        $(function(){
            $("button").click(function(){
                var arr=[];
                $("#d1 .d2").each(function(){
                    arr.push(this.index());
                })
                console.log(arr)
            })
        })
    </script>
阅读 1.5k
1 个回答

设置一个flag来标记console有没有输出过即可:

<script type="text/javascript">
  $(function(){
    let flag = true;
    $("button").click(function(){
      var arr=[];
      $("#d1 .d2").each(function(){
        arr.push(1);
      })
      if (flag) {
        console.log(arr);
        flag = false;
      }
    });
  });
</script>

你试试呢,希望能帮助到你。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题