javascript - 为什么只显示 arr[0]

标签 javascript setinterval

为什么只显示数组的第一个元素?

代码:

<html>
<head>
   <meta charset="utf-8">
   <style>
       #news {
    height: 30px;
    background-color:rgba(0, 0, 255, 0.37);
    direction: rtl;
    line-height: 30px;

}
    </style>
     <p id="x"></p>
     <p id="y"></p>
     <p id="z"></p>
     <p id="w"></p>
</head>
    <body>
        <div id="news">اخبار :<span id ="ne"></span></div>
        <script>
            var spn = document.getElementById("ne");
            var str = "";
            var arr = ["بهترین ها در سایت ما","آموزش جاوا اسکریپت","مرجع کامل سی اس اس","اولین دوره شبکه"];
            var len = arr.length;
            var i =0,j=0,tim;
            lop();
            function lop() {
                if(arr[i]){
                     var myss = arr[i].split(""); 
                     tim = setInterval(function(){shw(myss)},100);
                }
            }
            function shw(st) {
                if(st[j] != undefined) {
                    str += st[j];
                    spn.innerHTML = str;
                    j+=1;
                }
                else {
                    clearInterval(tim);
                    i++;
                    lop();
                }        
            }
        </script>
    </body>
</html>

最佳答案

我想出了一个解决方案:

var spn;
var str = "";
var arr = ["بهترین ها در سایت ما","آموزش جاوا اسکریپت","مرجع کامل سی اس اس","اولین دوره شبکه"];
var len = arr.length;
var i =0,tim;

window.onload = function() {
  spn = document.getElementById("ne");
  lop();
}

function lop() {
  arr = arr.join(' ').split("");
  if(arr.length > 0){
    tim = setInterval(function(){shw(arr)},100);
  }
}

function shw(st) {
  if(st[i] != undefined) {
    str += st[i];
    spn.innerHTML = str;
    i += 1;
  }
  else {
    clearInterval(tim);
  }
}
#news {
  height: 30px;
  background-color:rgba(0, 0, 255, 0.37);
  direction: rtl;
  line-height: 30px;

}
<div id="news">اخبار :<span id ="ne"></span></div>

关于javascript - 为什么只显示 arr[0],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37616602/

相关文章:

javascript - 在前端存储用户认证信息

javascript - setInterval 内的异步 xhr 请求不起作用 | JavaScript

JavaScript 计时器并不每秒计数

javascript - 如何在 Durandal View 上触发退出/停用逻辑?

javascript - 需要 RegEx for URI 模板 (RFC 6570)

使组件动态跟随另一个组件的Javascript

javascript - 选择 jquery 作为我的主要 javascript 库有哪些优点和缺点?

javascript - 隐式和显式混合之间的区别

javascript - 动态更改 setInterval 值

javascript - setInterval 与 chrome 和 firefox 不同