Javascript java脚本我需要帮助来解决一个任务

Javascript java脚本我需要帮助来解决一个任务,javascript,Javascript,我正在一个网站上工作,我需要做一个幻灯片文本。我的代码如下: var quotes = new Array(); quotes[0] = "ola mundo"; quotes[1] = "quote2"; quotes[2] = "quote3"; quotes[3] = "quote4"; quotes[4] = "quote5"; console.log(quotes); var counter = 0; function loop() { if (counter > 4

我正在一个网站上工作,我需要做一个幻灯片文本。我的代码如下:

var quotes = new Array();

quotes[0] = "ola mundo";
quotes[1] = "quote2";
quotes[2] = "quote3";
quotes[3] = "quote4";
quotes[4] = "quote5";
console.log(quotes);
var counter = 0;

function loop() {
    if (counter > 4) counter = 0;
    document.getElementById('textslide').firstElementChild.innerHTML = quotes[counter];
    counter++;
    console.log(counter);
    setTimeout(loop, 2000);
}
loop();
以及HTML:

<div id="textslide">
<p></p>
</div>

如何修复此问题?

此错误意味着
document.getElementById('textslide')
未解析,这意味着您的文档(DOM)未完全加载

在执行JavaScript函数之前,请确保DOM已准备就绪:

<body>
  :
  <div id="textslide">
  <p></p>
  </div>
  <script type="text/javascript">
    // your JS code here or in the <head> element
    window.onload = loop;
  </script>
</body>

:

//您的JS代码在此处或元素中 window.onload=循环;
并从JS代码中删除对
循环的调用

有两种方法可以捕获加载事件

如果您不想使用
load
事件,请确保您的JavaScript代码位于
body
元素的底部 我使用的代码是

<div id="textslide">
  <p></p>
  </div>
  <script type="text/javascript">
    // your JS code here or in the <head> element
        var quotes = new Array();

quotes[0] = "ola mundo";
quotes[1] = "quote2";
quotes[2] = "quote3";
quotes[3] = "quote4";
quotes[4] = "quote5";
console.log(quotes);
var counter = 0;

function loop() {
    if (counter > 4) counter = 0;
    document.getElementById('textslide').firstElementChild.innerHTML = quotes[counter];
    counter++;
    console.log(counter);
    setTimeout(loop, 2000);
}
loop();
    window.onload = loop;
    window.onload = loop;
  </script>

//您的JS代码在此处或元素中 var quotes=新数组(); 引号[0]=“ola mundo”; 引号[1]=“引号2”; quotes[2]=“quote3”; 引号[3]=“引号4”; 引号[4]=“引号5”; console.log(引号); var计数器=0; 函数循环(){ 如果(计数器>4)计数器=0; document.getElementById('textslide').firstElementChild.innerHTML=quotes[counter]; 计数器++; 控制台日志(计数器); setTimeout(loop,2000); } loop(); window.onload=循环; window.onload=循环;

就像你说的那样?

我将你的代码直接粘贴到JSFIDLE中:效果很好。有什么问题吗?仅供参考:Java不是JavaScript。在HTML后面加上脚本标记。或者在文档的事件中调用函数删除
循环()行,只有一个
window.onload=loop行。
<div id="textslide">
  <p></p>
  </div>
  <script type="text/javascript">
    // your JS code here or in the <head> element
        var quotes = new Array();

quotes[0] = "ola mundo";
quotes[1] = "quote2";
quotes[2] = "quote3";
quotes[3] = "quote4";
quotes[4] = "quote5";
console.log(quotes);
var counter = 0;

function loop() {
    if (counter > 4) counter = 0;
    document.getElementById('textslide').firstElementChild.innerHTML = quotes[counter];
    counter++;
    console.log(counter);
    setTimeout(loop, 2000);
}
loop();
    window.onload = loop;
    window.onload = loop;
  </script>