任何人都可以帮助我解决为什么.substring()不能使用setInterval推出文本?

时间:2015-03-11 16:32:08

标签: javascript html substring setinterval

这个想法是针对一个预定义的不可见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; 

      }




};

};

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

1 个答案:

答案 0 :(得分: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);