为了账号安全,请及时绑定邮箱和手机立即绑定

js点击事件里面有个循环我可以点击一次执行一次循环吗

js点击事件里面有个循环我可以点击一次执行一次循环吗

胡子哥哥 2019-03-21 22:19:17
let arr = [                {id:1,text:"生活不只眼前的苟且"},                {id:2,text:"还有诗"},                {id:3,text:"和远方"}                ];let items = [];$("#add").click(function(){for(var i = 0;i<arr.length;i++){    items.push(arr[i]);  }  })//这样写会直接把arr所有的数据全部加进去,希望是点击一次 添加arr中的一个id
查看完整描述

3 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

  // 这里定义一个全局的index标识上次添加的id的位置

  let index = 0;

  let arr = [

    {id:1,text:"生活不只眼前的苟且"},

    {id:2,text:"还有诗"},

    {id:3,text:"和远方"}

  ];

  let arrLength = arr.length;

  let items = [];

  document.getElementById("add").onclick = function(){

    // 防止数组下标溢出

    if (index <= arrLength - 1) {

      items.push(arr[index]);

      // 添加完成之后下标后移

      index++;

    }

    console.log(items);

  }


查看完整回答
反对 回复 2019-04-14
?
当年话下

TA贡献1890条经验 获得超9个赞

可以先确定这个id,然后做一个比较

var id = ''


$("#add").click(function(){

    for(var i = 0;i<arr.length;i++){

        if (id === arr[i].id) {

            items.push(arr[i]); 

        }

    }  

})


查看完整回答
反对 回复 2019-04-14
?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

闭包+立即执行函数实现:


$('#add').click(

    (function() {

        let count = 0;

        return function() {

            items.push(arr[count++]);

        };

    })()

);


查看完整回答
反对 回复 2019-04-14
  • 3 回答
  • 0 关注
  • 613 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信