比如现在我有一个数组,里面10个链接,每天晚上10点更换一个  按顺序。是循环,让每天对应给到链接。可是代码要怎么写呢各位
arr=[1,2,3,4,5,6,7,8,9,0](里面数字模拟链接)<a href=""></a>

解决方案 »

  1.   

    把当天的链接保存到localStorage里面,然后到10点就获取这个值匹配数组下标,设置新的值(当前下标加1)同时更新localStorage,超过数组长度设置下标为0,进行下次循环
      

  2.   


    那更新localStorage的时候怎么更新到对应的链接
      

  3.   


    <script>
    let urls = ['baidu.com','qq.com','163.com','taobao.com','csdn.com','a.com','b.com','c.com','d.com','e.com']
    let url = ''
    if (!localStorage.url) {
      localStorage.url = urls[0]
    } else {
      let index = urls.indexOf(localStorage.url)
      let len = ++index // 新的下标
      if (len > urls.length-1) {
        len = 0
      }
      url = urls[len]
      localStorage.url = url
      console.log('新的url: '+url)
    }
    </script>
      

  4.   

    根据一楼的回复   是否可以用localStorage直接存储下标   这样是不是方便一点
      

  5.   


    <a href="" id="aa">xxxxxxxxxx</a>
    <script type="text/javascript">
    var arr = ["地址1","地址2","地址3","地址4","地址5","地址6","地址7","地址8","地址9","地址10"];
    var hours = 60*60*1000;
    var ut = 22;
    function update() {
    var timeval = new Date().getTime() + 8*hours;
    var date = Math.floor((timeval - ut*hours) / (24*hours));
    var n = (date+6) % arr.length;
    document.getElementById("aa").href = arr[n];
    var rt = ((24+ut)*hours-timeval%(24*hours))%(24*hours);
    setTimeout(update, rt);
    }
    update();
    </script>
      

  6.   

    这个做了好像没意义,新浏览器打开永远都是第一个。还是用api存储吧
      

  7.   

    初始的url怎么定义?无法定义只能是每次打开获取第一个。就算给一个初始值,也只能是从这个值开始计算(也仅仅是当前浏览器有效)。换个浏览器打开又会回到最初设置的值开始计算下个值
      

  8.   


    大神 如果我想其他时间点更换数据呢   需要改动哪里?这串代码有些看不懂var ut = 22;//晚上10点==22点
      

  9.   


    那是你用的方法不对。
    不用localStorage计数,用当前时间戳计算就不会出错,除非用户改系统日期。
      

  10.   


    那是你用的方法不对。
    不用localStorage计数,用当前时间戳计算就不会出错,除非用户改系统日期。
    这个前提是知道当前的url是什么,如果没有初始值呢?
      

  11.   


    那是你用的方法不对。
    不用localStorage计数,用当前时间戳计算就不会出错,除非用户改系统日期。
    这个前提是知道当前的url是什么,如果没有初始值呢?
    这和url有什么关系?
      

  12.   

    这和url有什么关系?好吧看错了,其实这种定制代码意义不大。url数组长度改变,更新时间改变了就不行了。还不如请求api,简单实用