谁能帮我解决为什么 .substring() 不适用于 setInterval 推出文本

Can anyone help me with why .substring() isn't working with setInterval roll out text?

本文关键字:适用于 不适用 setInterval 文本 解决 substring 为什么      更新时间:2023-09-26

这个想法是针对一个预定义的不可见的P元素,其中包含文档中的文本,并使其再次推出并可见(不包括使正文加载事件时文本不可见的函数)。

我已经注释了不适用于子字符串方法的代码行。

var tally = 0; //global. 


var rollTextOut = function(x){ //make re-usable for all roll-outs. 
var anim = setInterval(function(){sequence()}, 50);
function sequence(){
  tally++; 
 if(x===1){

     var pHidden1 = document.getElementById("roll1");
     pHidden1.style.background="#fff";
     pHidden1.style.zIndex="2";
     pHidden1.style.visibility="visible";
    var text = pHidden1.innerHTML; //targets the p text inside html doc.
    pHidden1.innerHTML = text.substring(0, tally); //<why doesn't this work?


 }
 else if(x===2){
     var pHidden2 = document.getElementById("roll2");
     pHidden2.style.background="#fff";
     pHidden2.style.zIndex="2";
     pHidden2.style.visibility="visible";
      pHidden2.innerHTML = tally;
 }
  else if(x===3){
     var pHidden3 = document.getElementById("roll3");
     pHidden3.style.background="#fff";
     pHidden3.style.zIndex="2";
     pHidden3.style.visibility="visible";
     pHidden3.innerHTML = tally;
 }
  else{
     var pHidden4 = document.getElementById("roll4");
     pHidden4.style.background="#fff";
     pHidden4.style.zIndex="2";
     pHidden4.style.visibility="visible";
     pHidden4.innerHTML = tally;
 }


     if(tally===15){
       clearInterval(anim); 
       tally=0; 
      }


};
};

任何帮助和建议都非常感谢。

删除默认文本,以便无法递增下一个字母,因为它不再存在。因此,存储对它的引用。

var pHidden1 = document.getElementById("roll1");
if (!pHidden1.myDefaultText) { 
    pHidden1.myDefaultText = pHidden.textContent || pHidden.innerText;
}
var text = pHidden1.myDefaultText; 
pHidden1.innerHTML = text.substring(0, tally);