Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谁能帮我解释一下为什么.substring()不是';t使用设置间隔展开文本?_Javascript_Html_Substring_Setinterval - Fatal编程技术网

Javascript 谁能帮我解释一下为什么.substring()不是';t使用设置间隔展开文本?

Javascript 谁能帮我解释一下为什么.substring()不是';t使用设置间隔展开文本?,javascript,html,substring,setinterval,Javascript,Html,Substring,Setinterval,其思想是针对文档中包含文本的预定义不可见p元素,并使其展开并再次可见(不包括在body load事件中使文本不可见的函数) 我已经对不使用substring方法的代码行进行了注释 var tally = 0; //global. var rollTextOut = function(x){ //make re-usable for all roll-outs. var anim = setInterval(function(){sequence()}, 50); function

其思想是针对文档中包含文本的预定义不可见p元素,并使其展开并再次可见(不包括在body load事件中使文本不可见的函数)

我已经对不使用substring方法的代码行进行了注释

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-tally=0//全球的。
var rollTextOut=函数(x){//使所有转出可重用。
var anim=setInterval(函数(){sequence()},50);
函数序列(){
理货++;
如果(x==1){
var pHidden1=document.getElementById(“roll1”);
pHidden1.style.background=“#fff”;
pHidden1.style.zIndex=“2”;
pHidden1.style.visibility=“可见”;
var text=pHidden1.innerHTML;//以html文档中的p文本为目标。

pHidden1.innerHTML=text.substring(0,tally);//删除默认文本,因此无法增加下一个字母,因为它已不存在。因此请存储对它的引用

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

您如何期望
子字符串(0,计数)
如果tally==0,则获取任何文本??因为你替换了文本,所以下次它不在那里!tally在全局范围chsdk中,所以它一直在增加?epascarello,你能理解我的意思吗?我想我明白你的意思了。你的代码不容易阅读,你真的应该将其放入for循环中,并使用数组而不是多个pHidden变量ables。调用substring时,
tally
似乎是1,所以我不知道问题出在哪里。但是,第二次循环时,它不会起作用,因为当你得到innerHTML时,它只会是你放回的一个字符。你在第一次迭代时替换文本,这样innerHTML就只有一个字母,下一次迭代,你需要y来增加它,但是你删除了默认文本,所以你不能添加更多字符,因为它们不在那里。好的,干杯!我想我明白了。大量帮助。gunna返回并调整代码。