错误,单词一次不显示一个字母

时间:2019-01-08 10:15:10

标签: javascript

我试图确保显示一个单词时,它会一个字母一个字母地显示。但是,这不起作用。而且我一直在出错。

我已经查看过StackOverflow,看是否还有其他人遇到与我相同的问题。有些人有相同的目标,但是,我找不到任何有相同问题的人。我用于实现此目标的编程语言是JavaScript。

代码:

 <script type="text/javascript"><![CDATA[
  document.documentElement.addEventListener('load',function(evt){
  alert('OK');
  },false);

  var text = 'dog';
  var curr = "";
  var Write = function write(){
    var elem = document.getElementById('cls-3');
    elem.textContent += text.charAt(curr);
    curr++;
    if (curr < text.length)
      window.setTimeout(write, 20);
};

 Write();
    ]]></script>    

错误:

  

Logo_infomaatje.svg?version = 3613:51未捕获的TypeError:无法读取   属性'textContent'为null       写时(Logo_infomaatje.svg?version = 3613:51)       在Logo_infomaatje.svg?version = 3613:56

使用此代码,我期望“狗”一词会被逐字拼写出来。不幸的是,这没有发生。我希望我提供了足够的信息。

问候,

Parsa237

1 个答案:

答案 0 :(得分:0)

正如Stefan在评论中所说,我认为在执行行var elem = document.getElementById('cls-3');时,html中没有cls-3元素。

也许永远不会创建此元素,或者可能在创建此元素之前执行了JavaScript代码。

根据您的代码,Write()被立即调用,而不是等待DOM加载事件。您应该尝试这样做:

document.documentElement.addEventListener('load',function(evt){
    alert('OK');
    Write();
},false);