Javascript innerHTML仍在计算一个标记?

Javascript innerHTML仍在计算一个标记?,javascript,html,web,innerhtml,Javascript,Html,Web,Innerhtml,我做了一个打字机效果,它会先键入一个字符串,然后再删除它。如图所示: 但是,正如您从输出中看到的,有一个“>”标记不会消失!我什么都试过了 我已将出现故障的函数粘贴到下面: function removeType(i,isTag,text,str2) { text = str2.slice(0, --i); if(text == 0){ return; } document.getElementById('test').i

我做了一个打字机效果,它会先键入一个字符串,然后再删除它。如图所示:

但是,正如您从输出中看到的,有一个“>”标记不会消失!我什么都试过了

我已将出现故障的函数粘贴到下面:

    function removeType(i,isTag,text,str2) {
      text = str2.slice(0, --i);

      if(text == 0){
        return;
      }
      document.getElementById('test').innerHTML = text;

      var char = text.slice(-1);
      if( char === '>' ) isTag = true;
      if( char === '<' ) isTag = false;

      if (isTag) return removeType(i,isTag,text,str2);
      setTimeout(function() { removeType(i,isTag,text,str2);}, 100);

    }
函数删除类型(i、isTag、文本、str2){
text=str2.slice(0,--i);
如果(文本==0){
返回;
}
document.getElementById('test').innerHTML=text;
var char=text.slice(-1);
如果(char=='>')isTag=true;
如果(字符=='替换

    function removeType(i,isTag,text,str2) {
      text = str2.slice(0, --i);

      if(text == 0){
        return;
      }
      document.getElementById('test').innerHTML = text;

      var char = text.slice(-1);
      if( char === '>' ) isTag = true;
      if( char === '<' ) isTag = false;

      if (isTag) return removeType(i,isTag,text,str2);
      setTimeout(function() { removeType(i,isTag,text,str2);}, 100);

    }
函数删除类型(i、isTag、文本、str2){
text=str2.slice(0,--i);
如果(文本==0){
返回;
}
document.getElementById('test').innerHTML=text;
var char=text.slice(-1);
如果(char=='>')isTag=true;
如果(char=='')isTag=true;
如果(isTag){
如果(char=='')isTag=true;
如果(isTag){

如果(char=='函数
removeType
中的问题是,当您刚刚解析一个
时,您没有进入
if(isTag)
主体,请在您的问题中发布相关的“”代码,不要只发布一个链接,希望我们看到。您的问题在这里
if(char=='@Ingus,请注意这些函数中字符串解析的方向是相反的,因此
@trincot的效果我测试了它,它似乎在函数
removeType
中将
if
更改为
if(isTag | char=='
    function removeType(i,isTag,text,str2) {
      text = str2.slice(0, --i);

      document.getElementById('test').innerHTML = text;
      if(text === ''){
        return;
      }

      var char = text.slice(-1);
      if( char === '>' ) isTag = true;

      if (isTag) {
        if( char === '<' ) isTag = false;
        return removeType(i,isTag,text,str2);
      }
      setTimeout(function() { removeType(i,isTag,text,str2);}, 100);

    }
  str2.replace(/<[^>]*>/g, '');
  var str2 = "Hello Stackoverflow<span class='punc'>?</span>";

  const el = document.createElement('p');
  el.innerHTML = str2;
  str2 = el.innerText;
if (isTag || char === '<')
if(text == 0){
if (!text.length){